一、連線與認證
# 本地連線
mysql -u root -p
# 遠端連線
mysql -h 110.110.110.110 -u root -p'password'
# 退出
exit / quit / \q
二、密碼管理
# 初始設定密碼(root 無密碼時)
mysqladmin -u root password 'newpass'
# 修改密碼
mysqladmin -u root -p'oldpass' password 'newpass'
三、使用者與權限
-- 建立用戶、授權(% 表示任意主機)
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user'@'%' IDENTIFIED BY 'pass';
-- 僅本地登入
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'user'@'localhost' IDENTIFIED BY 'pass';
-- 移除密碼
GRANT ... IDENTIFIED BY '';
-- 刷新權限
FLUSH PRIVILEGES;
-- 查看權限
SHOW GRANTS FOR 'user'@'host';
-- 撤銷權限
REVOKE ALL ON *.* FROM 'user'@'host';
-- 刪除用戶
DROP USER 'user'@'host';
四、資料庫操作
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)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
常用 DDL
| 操作 | SQL |
| 刪表 | DROP TABLE [IF EXISTS] tbl_name; |
| 改表名 | RENAME TABLE old TO new; |
| 加欄位 | ALTER TABLE tbl ADD col TYPE [DEFAULT val]; |
| 改欄位 | ALTER TABLE tbl CHANGE old_col new_col TYPE; |
| 刪欄位 | ALTER TABLE tbl DROP col; |
| 加索引 | ALTER TABLE tbl ADD INDEX idx_name (col); |
| 加主鍵 | ALTER TABLE tbl ADD PRIMARY KEY (col); |
| 加唯一 | ALTER TABLE tbl ADD UNIQUE idx_name (col); |
| 刪索引 | ALTER TABLE tbl DROP INDEX idx_name; |
六、資料操作 (DML)
# 導出整庫
mysqldump -u user -p db > dump.sql
# 導出單表
mysqldump -u user -p db tbl > tbl.sql
# 導出結構
mysqldump -u user -p -d --add-drop-table db > struct.sql
# 導入
mysql -u user -p db < dump.sql
# 或
mysql> SOURCE dump.sql;
八、腳本化部署範例
# 方式 1:管道導入
mysql -uroot -p'pass' < c:\school.sql
# 方式 2:source 命令
mysql> SOURCE c:\school.sql;
九、實用查詢技巧
連線後:SET NAMES utf8mb4;