MySQLi - 管理



執行和關閉 MySQL 伺服器

首先檢查您的 MySQL 伺服器是否正在執行。您可以使用以下命令進行檢查:

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** 資料庫的 **user** 表中新增一個新條目。

以下程式是新增新使用者 **guest** 的示例,該使用者具有 SELECT、INSERT 和 UPDATE 許可權,密碼為 **guest123**;SQL 查詢如下:

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() 函式加密新密碼。如上例所示,密碼 mypass 被加密為 6f8c114b58f2ce9e。

注意 FLUSH PRIVILEGES 語句。這告訴伺服器重新載入授權表。如果不使用它,您將無法使用新使用者帳戶連線到 MySQL,至少在伺服器重新啟動之前是這樣。

您還可以透過在執行 INSERT 查詢時將以下列的值設定為 'Y' 來為新使用者指定其他許可權,或者您以後可以使用 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 命令。以下示例將為名為 **TUTORIALS** 的特定資料庫新增使用者 **zara**,密碼為 **zara123**。

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

這也會在名為 **user** 的 MySQL 資料庫表中建立一個條目。

**注意** - 除非在 SQL 命令末尾新增分號 (;),否則 MySQL 不會終止命令。

/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 資料庫的重要 MySQL 命令列表:

  • **USE 資料庫名** - 這將用於在 MySQL 工作區中選擇一個數據庫。

  • **SHOW DATABASES** - 列出 MySQL DBMS 可訪問的資料庫。

  • **SHOW TABLES** - 在使用 USE 命令選擇資料庫後,顯示資料庫中的表。

  • **SHOW COLUMNS FROM *表名*:** 顯示錶的屬性、屬性型別、鍵資訊、是否允許 NULL、預設值以及表的其他資訊。

  • **SHOW INDEX FROM 表名** - 顯示錶上所有索引的詳細資訊,包括主鍵。

  • **SHOW TABLE STATUS LIKE 表名\G** - 報告 MySQL DBMS 效能和統計詳細資訊。

廣告