標籤:io os 使用 ar for 檔案 sp 資料 div
MySQL資料庫安裝及基本配置
CentOS6和RHEL6系統的YUM中包含了MySQL安裝包,版本是MySQL5。rpm軟體包的名稱是mysql-server。
使用以下命令可以安裝MySQL資料庫:
yum install -y mysql-server mysql mysql-devel
安裝完成後我們可以通過以下命令啟動MySQL服務:
(service mysqld start
第一次啟動MySQL服務後,我們需要對MySQL資料庫進行初始化操作,設定root使用者的密碼,使用以下命令設定MySQL的root使用者密碼:
mysqladmin -u root password ‘password‘)
我們可以通過以下命令串連到原生MySQL服務上:
mysql -u root -p
開機自動啟動mysqlchkconfig mysqld on
設定檔儲存在/etc/my.cnf
SQL語言基礎
ALTER TABLE 語句用於在已有的表中添加、修改或刪除列。
文法:
重新命名表名:
ALTER TABLE table_name RENAME table_name_new;
如需在表中添加列,請使用下列文法:
ALTER TABLE table_name ADD column_name datatype;
要刪除表中的列,請使用下列文法:
ALTER TABLE table_name DROP COLUMN column_name;
注釋:某些資料庫系統不允許這種在資料庫表中刪除列的方式 (DROP COLUMN column_name)。
要改變表中列的資料類型,請使用下列文法:
ALTER TABLE table_name MODIFY column_name datatype;
重新命名一個列:
ALTER TABLE table_name CHANGE COLUMN column_name column_name_new datatype;
INSERT INTO 語句用於向表格中插入新的行。
插入:
INSERT INTO table_name VALUES (值1, 值2,....)
我們也可以指定所要插入資料的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
Update 語句用於修改表中的資料:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
DELETE 語句用於刪除表中的行:
DELETE FROM 表名稱 WHERE 列名稱 = 值
刪除所有行
可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:
DELETE FROM table_name 或者 DELETE * FROM table_name
建立一個使用者:
CREATE USER monitor IDENTIFIED BY ‘password‘;
刪除一個使用者:
DROP USER monitor;
要點:
DROP USER不能自動關閉任何開啟的使用者對話。而且,如果使用者有開啟的對話,此時取消使用者,則命令不會生效,直到使用者對話被關閉後才生效。一旦對話被關閉,使用者也被取消,此使用者再次試圖登入時將會失敗。這是有意設計的。
重新命名使用者:
RENAME USER monitor TO monitor2;
重設密碼:
SET PASSWORD = PASSWORD(‘newpassword‘);
SET PASSWORD FOR monitor = PASSWORD(‘newpassword‘);
授與權限可以分為多個層級:
全域層級 資料庫層級 表層級 列層級 子程式層級
全域級授權:
GRANT ALL PRIVILEGES ON *.* to ‘monitor‘@‘%‘ IDENTIFIED BY ‘password‘;
撤銷所有授權:
REVOKE ALL PRIVILEGES , GRANT OPTION FROM monitor;
MySQL使用最為廣泛的備份工具是mysqldump。
使用mysqldump進行基本的Database Backup恢複。
備份一個資料庫:
mysqldump -u root -p linuxcast > linuxcast_backup.sql
從一個備份檔案恢複一個資料庫:
mysql -u root -p linuxcast < linuxcast_backup.sql
從一個MySQL伺服器備份資料庫到另一個MySQL伺服器(注意應該先在遠程MySQL上建立好資料庫):
[local-server]# mysqldump -u root -p linuxcast | mysql \
-u root -p --host=remote-server -C linuxcast
查看MySQL支援的編碼:
mysql> SHOW CHARACTER SET;
查看當前MySQL伺服器預設編碼:
mysql> SHOW VARIABLES LIKE ‘character_set%‘;
mysql> SHOW VARIABLES LIKE ‘collation%‘;
建立資料庫的時候指定編碼:
CREATE DATABASE linuxcast
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
修改一個已有資料庫的編碼:
ALTER DATABASE linuxcast CHARACTER SET utf8 COLLATE utf8_general_ci;
(設定資料庫預設編碼:
修改MySQL設定檔my.cnf:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set = utf8
collation-server = utf8_unicode_ci
init-connect=‘SET NAMES utf8‘
character-set-server = utf8
修改之後重啟MySQL生效。) 解決進不去mysql問題:
/etc/init.d/mysql stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysqlmysql>UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;
mysql>FLUSH PRIVILEGES;
mysql>quit/etc/init.d/mysql restart
mysql -u root -p
Enter password: <輸入新設的密碼newpassword>
mysql>
解決修改密碼問題:
SET PASSWORD = PASSWORD(‘password‘);
解決建立使用者無法登陸問題:因為root許可權過高,所以建立一使用者monitor。建立語句如下:GRANT ALL PRIVILEGES ON *.* to ‘monitor‘@‘%‘ IDENTIFIED BY ‘password‘;其中@“%”是可以在任何地址登入。
建立後到mysql.user下查看,有該使用者。但是使用mysql -u monitor -p password 登入,提示無法登入:ERROR 1045 (28000): Access denied for user ‘monitor‘@‘localhost‘ (using password: YES)
解決方案:
GRANT ALL PRIVILEGES ON *.* to ‘monitor‘@‘localhost‘ IDENTIFIED BY ‘password‘;
退出後用monitor登入,成功。
Mysql簡單使用