1. 介紹
1.1 MySQL概述與命令列的重要性
MySQL是一個被廣泛使用的開源關聯式資料庫管理系統(RDBMS)。其主要優點在於資料的高效率管理以及使用SQL(結構化查詢語言)進行靈活的資料操作。許多網路應用程式和企業系統都使用MySQL,而其強大的功能可透過MySQL命令列得到最大程度的發揮。
1.2 文章目的
本文將重點介紹MySQL的命令列操作,從資料庫的建立、管理、使用者權限設定等基本指令的使用到進階應用進行解說。特別是針對初學者或中級使用者,希望能幫助他們掌握操作MySQL的實用知識。
1.3 目標讀者
本指南的目標讀者是對MySQL感興趣的初學者到中級使用者。適合具備資料庫基礎知識,並計畫今後使用MySQL進行資料管理或網路開發的人。
2. MySQL基本指令
2.1 連接與斷開資料庫
要存取MySQL,首先需要連接到資料庫。登入MySQL伺服器時最常用的指令是mysql -u root -p
。執行此指令會啟動MySQL伺服器,並嘗試使用指定的用戶(本例中為root)登入。
mysql -u root -p
輸入此指令後,系統會要求您輸入密碼。輸入正確的密碼即可進入MySQL命令列。
要斷開連接,請使用exit
或quit
指令。
exit
這將讓您從MySQL伺服器登出,回到命令提示字元。
2.2 資料庫的建立與顯示
要建立新的資料庫,請使用CREATE DATABASE
指令。以下是建立一個名為mysqldemo
的資料庫的範例。
CREATE DATABASE mysqldemo;
執行指令後,如果顯示”Query OK”訊息,表示資料庫已成功建立。
要顯示已建立的資料庫列表,請使用SHOW DATABASES
指令。
SHOW DATABASES;
此指令會顯示伺服器上目前存在的所有資料庫的列表。
2.3 選擇資料庫
如果存在多個資料庫,需要指定要操作的資料庫。使用USE
指令可以選擇目前要操作的資料庫。
USE mysqldemo;
這樣,mysqldemo
資料庫就成為目前的目標操作對象,後續的指令都將針對此資料庫執行。

3. 資料表操作的基本指令
3.1 建立資料表
要在資料庫中儲存資料,首先需要建立資料表。使用CREATE TABLE
指令可以建立新的資料表。例如,建立一個名為users
的資料表,指令如下所示:
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (id)
);
此指令在users
資料表中定義了三個欄位(id
、name
、email
)。id
欄位是整數型,設定了自動遞增(AUTO_INCREMENT),並指定為主鍵(PRIMARY KEY)。
3.2 顯示資料表
建立資料表後,可以確認其列表。使用SHOW TABLES
指令會顯示目前選定資料庫中的所有資料表。
SHOW TABLES;
此外,如果想確認特定資料表的結構,請使用DESCRIBE
指令。它會顯示資料表中欄位的資訊和資料類型。
DESCRIBE users;
透過此指令,會列出users
資料表中各欄位的資料類型和屬性(是否允許NULL、鍵設定等)。
3.3 新增與顯示資料
要向資料表中新增資料,請使用INSERT INTO
指令。例如,新增一個用戶,如下所示:
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
此指令將一筆新的記錄插入到users
資料表中,並將指定的值儲存到name
和email
欄位中。
要顯示新增的資料,請使用SELECT
指令。顯示所有用戶,如下所示:
SELECT * FROM users;
這將列出users
資料表中的所有記錄。
4. 使用者管理與安全性
4.1 建立使用者與權限設定
在MySQL中,建立存取資料庫的使用者並賦予其適當的權限非常重要。要建立使用者,請使用CREATE USER
指令。以下範例建立一個新使用者user1
,可在localhost
存取,並將密碼設定為password123
。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';
此指令建立了一個名為user1
的新使用者,該使用者只能從本地主機(localhost)存取。
要賦予已建立的使用者權限,請使用GRANT
指令。例如,賦予user1
在mysqldemo
資料庫的所有權限,如下所示:
GRANT ALL PRIVILEGES ON mysqldemo.* TO 'user1'@'localhost';
此指令賦予user1
在mysqldemo
資料庫中所有資料表的全部權限。為了讓權限變更在系統中生效,需要執行FLUSH PRIVILEGES
指令。
FLUSH PRIVILEGES;
4.2 變更密碼
要變更現有使用者的密碼,請使用UPDATE
指令更新mysql
資料庫中的user
資料表。以下是變更root
使用者密碼為新密碼的範例:
UPDATE mysql.user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root';
FLUSH PRIVILEGES;
這將把root
使用者的密碼變更為newpassword
。執行FLUSH PRIVILEGES
會讓變更在系統中生效。
4.3 安全性強化的最佳實踐
為了強化MySQL的安全性,遵循以下最佳實踐非常重要:
- 刪除不必要的匿名使用者:刪除預設的匿名使用者,確保只有經過認證的使用者才能存取資料庫。
- 停用遠端root登入:為了提高安全性,停用遠端
root
使用者的登入。 - 使用高強度密碼:密碼應該是高強度且難以預測的,並定期更改。
採取這些措施可以提高資料庫的安全性,防止潛在的未經授權存取。

5. 進階MySQL指令
5.1 資料的更新與刪除
要更新資料表中的資料,請使用UPDATE
指令。例如,要更新users
資料表的name
欄位,如下所示:
UPDATE users SET name = 'Jane Doe' WHERE id = 1;
此指令將id
為1
的記錄的name
欄位值更改為Jane Doe
。請注意,如果不使用WHERE
子句,資料表中所有記錄都會被更新。
要刪除資料,請使用DELETE
指令。例如,刪除id
為1
的記錄,如下所示:
DELETE FROM users WHERE id = 1;
這將從users
資料表中刪除id
為1
的記錄。
5.2 備份與還原
要建立資料庫備份,請使用mysqldump
指令。此指令會匯出整個資料庫並儲存為SQL檔案。例如,建立mysqldemo
資料庫的備份,如下所示:
mysqldump -u root -p mysqldemo > mysqldemo_backup.sql
要執行還原(復原),請使用source
指令。以下是從mysqldemo_backup.sql
檔案還原資料庫的範例:
mysql -u root -p mysqldemo < mysqldemo_backup.sql
透過此指令,mysqldemo_backup.sql
的內容將匯入到mysqldemo
資料庫中。
5.3 伺服器的啟動與停止
要從命令列啟動MySQL伺服器,請使用mysqld
指令。例如,在Windows環境下,如下所示:
"C:Program FilesMySQLMySQL Server 5.7binmysqld"
要停止伺服器,請使用mysqladmin
指令。
"C:Program FilesMySQLMySQL Server 5.7binmysqladmin" -u root -p shutdown
這將正常停止MySQL伺服器。在無法使用GUI工具的環境下,透過命令提示字元啟動或停止伺服器尤其方便。
6. 疑難排解
6.1 常見錯誤與處理方法
使用MySQL時常見的錯誤之一是”Access denied for user”錯誤。這發生在指定的使用者名稱或密碼不正確時。處理方法是重新確認使用者名稱和密碼,並使用正確的資訊嘗試登入。
此外,”Unknown database”錯誤會在指定的資料庫不存在時顯示。使用SHOW DATABASES
指令確認資料庫是否存在,並視需要建立資料庫。
SHOW DATABASES;
CREATE DATABASE db_name;
6.2 資料庫操作的注意事項與提示
操作資料庫時,需要注意以下幾點:
- 取得備份:在進行資料庫操作之前,務必取得備份,這非常重要。這樣即使不小心刪除了資料,也能夠復原。
- 使用交易(Transaction):當需要將多個查詢作為一個操作執行時,請使用交易來確保資料的一致性。使用交易需要利用
START TRANSACTION
、COMMIT
、ROLLBACK
等指令。 - 指定精確的條件:使用
UPDATE
或DELETE
指令時,精確指定WHERE
子句非常重要,這可以防止意外修改或刪除記錄。
注意這些事項,可以事先預防MySQL問題的發生,並安全地操作資料庫。
7. 總結
MySQL命令列是一個強大的工具,可以高效率地進行資料庫管理與操作,從基礎到進階的任務都能完成。本文解說了MySQL基本指令的使用方法,包括資料庫的建立、資料表的操縱、使用者管理,以及資料的更新與刪除。
在資料庫的世界中,安全性和資料的一致性非常重要。因此,必須遵守使用者權限設定、密碼管理、取得備份等最佳實踐。此外,具備疑難排解的知識,可以在問題發生時快速應對。
掌握MySQL指令,可以更有效率且安全地操作資料庫。透過不斷實踐,並應用學到的知識,就能夠進行高效率且安全的資料庫操作。