MySQL管理
運行和關閉MySQL服務器
首先檢查MySQL服務器正在運行與否。在Linux係統下可以使用下麵的命令來檢查:
ps -ef | grep mysqld
如果MySQL正在運行,那麼會看到列出來的 mysqld 進程。如果服務器冇有運行,那麼可以使用下麵的命令來啟動它:
root@host# cd /usr/bin ./safe_mysqld &
現在,如果想關閉一個已經運行的 MySQL 服務器,那麼可以使用下麵的命令做到這一點:
root@host# cd /usr/bin ./mysqladmin -u root -p shutdown Enter password: ******
設置MySQL用戶帳戶
要添加一個新用戶到MySQL,隻需要在數據庫中的新記錄添加到用戶表:mysql.
下麵是添加新用戶:guest 的例子,給定 SELECT, INSERT and UPDATE權限和使用密碼:guest123; SQL 查詢是:
D:\software\mysql-5.6.25-winx64\bin> mysql -u root -p Enter password: mysql> use mysql; Database changed mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.20 sec) mysql> FLUSH PRIVILEGES; Query OK, 1 row affected (0.01 sec) mysql> SELECT host, user, password FROM user WHERE user = 'guest'; +-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec)
當要添加一個新用戶,記得要PASSWORD()函數加密MySQL新使用密碼。正如在上麵的例子中看到密碼為mypass,進行加密後為:6f8c114b58f2ce9e.
注意最後要使用FLUSH PRIVILEGES語句。 這告訴服務器重新加載授權表。如果不使用它,那麼將無法使用新的用戶帳戶連接到MySQL服務器,至少在服務器重新啟動後才可以。
也可以通過在用戶設置表以下幾列的值為'Y',指定給新用戶的權限,在執行INSERT查詢後,也可以在以後使用UPDATE查詢更新它們。主要權限如下所列:
-
Select_priv
-
Insert_priv
-
Update_priv
-
Delete_priv
-
Create_priv
-
Drop_priv
-
Reload_priv
-
Shutdown_priv
-
Process_priv
-
File_priv
-
Grant_priv
-
References_priv
-
Index_priv
-
Alter_priv
添加用戶帳戶的另一種方式是通過使用GRANT SQL命令; 下麵的例子將增加用戶zara 並使用密碼zara123 為特定數據庫:TUTORIALS.
D:\software\mysql-5.6.25-winx64\bin> mysql -u root -p password; Enter password: mysql> use mysql; Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
這也將創建一條記錄在MySQL數據庫中的表: user.
注意: MySQL不會終止命令,直到給一個分號(;)在SQL命令的結尾。
/etc/my.cnf 文件配置
大多數情況下,不應該碰這個文件(window下可根據實際情況配置)。默認情況下,它會具有以下項:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
在這裡,可以指定錯誤日誌為其它的目錄,否則不應該更改此文件中的任何內容。
管理 mysql 命令
這裡是重要的MySQL命令,經常在MySQL數據庫的管理或工作中使用:
-
USE Databasename : 用於選擇在MySQL工作區指定的數據庫。
-
SHOW DATABASES: 列出了MySQL數據庫管理係統中的所有可訪問的數據庫。
-
SHOW TABLES: 顯示已經選擇數據庫中的表的命令。
-
SHOW COLUMNS FROM tablename: 顯示屬性,屬性類型,關鍵信息,NULL是否被允許,默認值和其它的表信息。
-
SHOW INDEX FROM tablename: 提供所有指標的詳細信息表,其中包括PRIMARY KEY.
-
SHOW TABLE STATUS LIKE tablename\G: 報告MySQL的數據庫管理係統的性能和統計數據的詳細信息。