MySQL 命令繁多,本文整理最常用的操作指令,涵蓋連線、密碼修改、用戶授權、庫表管理、資料增刪改查、備份還原等核心場景,適合開發與運維人員快速查閱。
mysql -h<主機> -u<用戶> -p<密碼>
mysql -u root -p(安裝初期 root 無密碼,直接 Enter)mysql -h 110.110.110.110 -u root -p123456exit 或 quitmysqladmin -u root -p<舊密碼> password <新密碼>
mysqladmin -u root password ab12mysqladmin -u root -p ab12 password djg345-- 允許任意主機登入,擁有所有庫所有表的增刪改查權限(高風險) GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc'; -- 僅允許本機登入,操作指定庫 mydb(較安全) GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc'; -- 移除密碼 GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
最佳實踐: 遵循最小權限原則,避免使用 % 通配符主機,生產環境建議限制具體 IP。
| 操作 | 命令 | 範例 |
|---|---|---|
| 建立資料庫 | CREATE DATABASE <名稱>; | CREATE DATABASE xhkdb; |
| 建庫並建用戶授權 | 三條指令組合 | 見原文 4.1 例2 |
| 顯示所有庫 | SHOW DATABASES; | |
| 刪除資料庫 | DROP DATABASE [IF EXISTS] <名稱>; | DROP DATABASE IF EXISTS xhkdb; |
| 切換資料庫 | USE <名稱>; | USE xhkdb; |
| 查看當前庫 | SELECT DATABASE(); |
my.ini:default-character-set=gbk?useUnicode=true&characterEncoding=gbkheader("Content-Type:text/html;charset=gb2312");mysql_set_character_set()CREATE TABLE MyClass( id INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT, name CHAR(20) NOT NULL, sex INT(4) NOT NULL DEFAULT '0', degree DOUBLE(16,2) );

DROP TABLE [IF EXISTS] MyClass;RENAME TABLE MyClass TO YouClass;ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0';ALTER TABLE MyClass ADD INDEX idx_name (name);ALTER TABLE MyClass ADD PRIMARY KEY (id);ALTER TABLE MyClass ADD UNIQUE uk_card (cardnumber);ALTER TABLE MyClass DROP INDEX idx_name;ALTER TABLE MyClass CHANGE old_name new_name VARCHAR(50);ALTER TABLE MyClass DROP COLUMN passtest;INSERT INTO MyClass VALUES (1,'Tom',96.45), (2,'Joan',82.99);SELECT * FROM MyClass;SELECT * FROM MyClass ORDER BY id LIMIT 0,2;DELETE FROM MyClass WHERE id=1;UPDATE MyClass SET name='Mary' WHERE id=1;

mysqldump -u root -p dbname > backup.sqlmysqldump -u root -p dbname table > table.sqlmysqldump -u root -p -d --add-drop-table dbname > struct.sqlmysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk dbname > out.sqlmysql -u root -p CREATE DATABASE target_db; USE target_db; SOURCE /path/backup.sql;
SELECT * FROM tbl INTO OUTFILE '/tmp/data.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';LOAD DATA INFILE '/tmp/data.txt' INTO TABLE tbl FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' CHARACTER SET gbk;DROP DATABASE IF EXISTS school; CREATE DATABASE school; USE school; CREATE TABLE teacher ( id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(10) NOT NULL, address VARCHAR(50) DEFAULT '深圳', year DATE ); INSERT INTO teacher VALUES (NULL,'allen','大連一中','1976-10-10'); INSERT INTO teacher VALUES (NULL,'jack','大連二中','1975-12-23');
執行方式:mysql -uroot -p < c:\school.sql 或進入 MySQL 後 SOURCE c:\school.sql;