位置:首頁 > 數據庫 > MySQL教學 > MySQL管理

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的數據庫管理係統的性能和統計數據的詳細信息。