開心檔之MySQL 管理

雪奈椰子發表於2023-02-17


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

啟動:

cd c:/mysql/bin
mysqld --console

關閉:

cd c:/mysql/bin
mysqladmin -uroot shutdown

首先,我們需要透過以下命令來檢查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 shutdownEnter password: ******

如果你需要新增 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語句以分號 (;) 作為結束標識。


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

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock[mysql.server]user=mysqlbasedir=/var/lib[safe_mysqld]err-log=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

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


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

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

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

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

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

    mysql> SHOW COLUMNS FROM kxdang_tbl;+-----------------+--------------+------+-----+---------+-------+| Field           | Type         | Null | Key | Default | Extra |+-----------------+--------------+------+-----+---------+-------+| kxdang_id       | int(11)      | NO   | PRI | NULL    |       || kxdang_title    | varchar(255) | YES  |     | NULL    |       || kxdang_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 kxdang_tbl;+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| kxdang_tbl |          0 | PRIMARY  |            1 | kxdang_id   | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+1 row in set (0.00 sec)
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    該命令將輸出Mysql資料庫管理系統的效能及統計資訊。

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026554/viewspace-2935803/,如需轉載,請註明出處,否則將追究法律責任。

相關文章