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

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


管理MySQL的命令

以下列出了使用Mysql資料庫過程中常用的命令:

  • USE 資料庫名 :
    選擇要操作的Mysql資料庫,使用該命令後所有Mysql命令都只針對該資料庫。

    mysql> use itread01;
    Database changed
    
  • SHOW DATABASES:
    列出 MySQL 資料庫管理系統的資料庫列表。

    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | itread01             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin         |
    | test               |
    | wecenter           |
    | wordpress          |
    +--------------------+
    10 rows in set (0.02 sec)
    
  • SHOW TABLES:
    顯示指定資料庫的所有表,使用該命令前需要使用 use 命令來選擇要操作的資料庫。

    mysql> use itread01;
    Database changed
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_itread01 |
    +------------------+
    | employee_tbl     |
    | itread01_tbl       |
    | tcount_tbl       |
    +------------------+
    3 rows in set (0.00 sec)
    
  • SHOW COLUMNS FROM 資料表:
    顯示資料表的屬性,屬性型別,主鍵資訊 ,是否為 NULL,預設值等其他資訊。

    mysql> SHOW COLUMNS FROM itread01_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field           | Type         | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | itread01_id       | int(11)      | NO   | PRI | NULL    |       |
    | itread01_title    | varchar(255) | YES  |     | NULL    |       |
    | itread01_author   | varchar(255) | YES  |     | NULL    |       |
    | submission_date | date         | YES  |     | NULL    |       |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
    
  • SHOW INDEX FROM 資料表:
    顯示資料表的詳細索引資訊,包括PRIMARY KEY(主鍵)。

    mysql> SHOW INDEX FROM itread01_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | itread01_tbl |          0 | PRIMARY  |            1 | itread01_id   | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
    
  • SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G:
    該命令將輸出Mysql資料庫管理系統的效能及統計資訊。

    mysql> SHOW TABLE STATUS  FROM itread01;   # 顯示資料庫 itread01 中所有表的資訊
    
    mysql> SHOW TABLE STATUS from itread01 LIKE 'itread01%';     # 表名以itread01開頭的表的資訊
    mysql> SHOW TABLE STATUS from itread01 LIKE 'itread01%'\G;   # 加上 \G,查詢結果按列列印
    

常用MySQL圖形化管理工具

MySQL的管理維護工具非常多,除了系統自帶的命令列管理工具之外,還有許多其他的圖形化管理工具,這裡我介紹幾個經常使用的mysql圖形化管理工具,供大家參考。

1、phpMyAdmin(http://www.phpmyadmin.NET/)

phpMyAdmin是最常用的MySQL維護工具,是一個用PHP開發的基於Web方式架構在網站主機上的MySQL管理工具,支援中文,管理資料庫非常方便。不足之處在於對大資料庫的備份和恢復不方便。


2、MySQLDumper(http://www.mysqldumper.de/en/)

MySQLDumper使用php開發的MySQL資料庫備份恢復程式,解決了使用PHP進行大資料庫備份和恢復的問題,數百兆的資料庫都可以方便的備份恢復,不用擔心網速太慢導致中間中斷的問題,非常方便易用。這個軟體是德國人開發的,還沒有中文語言包。


3、Navicat(http://www.navicat.com/)

Navicat是一個桌面版MySQL資料庫管理和開發工具。和微軟SQLServer的管理器很像,易學易用。Navicat使用圖形化的使用者介面,可以讓使用者使用和管理更為輕鬆。支援中文,有免費版本提供。


4、MySQL GUI Tools(http://dev.mysql.com/downloads/gui-tools/)

MySQL GUI Tools是MySQL官方提供的圖形化管理工具,功能很強大,值得推薦,可惜的是沒有中文介面。


5、MySQL ODBC Connector(http://dev.mysql.com/downloads/connector/odbc/)

MySQL官方提供的ODBC介面程式,系統安裝了這個程式之後,就可以通過ODBC來訪問MySQL,這樣就可以實現SQLServer、Access和MySQL之間的資料轉換,還可以支援ASP訪問MySQL資料庫。


6、MySQL Workbench(http://dev.mysql.com/downloads/workbench/)

MySQL Workbench是一個統一的視覺化開發和管理平臺,該平臺提供了許多高階工具,可支援資料庫建模和設計、查詢開發和測試、伺服器配置和監視、使用者和安全管理、備份和恢復自動化、審計資料檢查以及嚮導驅動的資料庫遷移。 MySQL Workbench是MySQL AB釋出的視覺化的資料庫設計軟體,它的前身是 FabForce 公司的 DDesigner 4。 MySQL Workbench 為資料庫管理員、程式開發者和系統規劃師提供視覺化設計、模型建立、以及資料庫管理功能。它包含了用於建立複雜的資料建模ER模型,正向和逆向資料庫工程,也可以用於執行通常需要花費大量時間和需要的難以變更和管理的文件任務。MySQL工作臺可在Windows,Linux和Mac上使用。


7、SQLyog (http://sqlyog.en.softonic.com/ 或者 https://www.webyog.com/product/sqlyog)

SQLyog 是一個易於使用的、快速而簡潔的圖形化管理MYSQL資料庫的工具,它能夠在任何地點有效地管理你的資料庫。

SQLyog是業界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL資料庫管理工具。使用SQLyog可以快速直觀地讓您從世界的任何角落通過網路來維護遠端的MySQL資料庫。