天天看點

MySQL 管理(上)

啟動及關閉 MySQL 伺服器

Windows 系統下

在 Windows 系統下,打開指令視窗(cmd),進入 MySQL 安裝目錄的 bin 目錄。

啟動:

cd c:/mysql/bin
mysqld --console           

複制

關閉:

cd c:/mysql/bin
mysqladmin -uroot shutdown           

複制

Linux 系統下

首先,我們需要通過以下指令來檢查MySQL伺服器是否啟動:

ps -ef | grep mysqld           

複制

如果MySql已經啟動,以上指令将輸出mysql程序清單, 如果mysql未啟動,你可以使用以下指令來啟動mysql伺服器:

root@host# cd /usr/bin
./mysqld_safe &           

複制

如果你想關閉目前運作的 MySQL 伺服器, 你可以執行以下指令:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******           

複制

MySQL 使用者設定

如果你需要添加 MySQL 使用者,你隻需要在 mysql 資料庫中的 user 表添加新使用者即可。

以下為添加使用者的的執行個體,使用者名為guest,密碼為guest123,并授權使用者可進行 SELECT, INSERT 和 UPDATE操作權限:

root@host# 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)           

複制

在添加使用者時,請注意使用MySQL提供的 PASSWORD() 函數來對密碼進行加密。 你可以在以上執行個體看到使用者密碼加密後為: 6f8c114b58f2ce9e.

注意:在 MySQL5.7 中 user 表的 password 已換成了authentication_string。

注意:password() 加密函數已經在 8.0.11 中移除了,可以使用 MD5() 函數代替。

注意:在注意需要執行 FLUSH PRIVILEGES 語句。 這個指令執行後會重新載入授權表。

如果你不使用該指令,你就無法使用新建立的使用者來連接配接mysql伺服器,除非你重新開機mysql伺服器。

你可以在建立使用者時,為使用者指定權限,在對應的權限列中,在插入語句中設定為 'Y' 即可,使用者權限清單如下:

  • 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

另外一種添加使用者的方法為通過SQL的 GRANT 指令,以下指令會給指定資料庫TUTORIALS添加使用者 zara ,密碼為 zara123 。

root@host# mysql -u root -p
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 檔案配置

一般情況下,你不需要修改該配置檔案,該檔案預設配置如下:

[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           

複制

在配置檔案中,你可以指定不同的錯誤日志檔案存放的目錄,一般你不需要改動這些配置。