net stop mysql
net start mysql
mysql -u root -p # 交互式輸入密碼
mysql -uroot -p'pass' # 直接帶密碼(注意無空格)
mysql -h 192.168.1.10 -uroot -p # 遠程連接
-- 創建用戶並授權(推薦 8.0+ 語法)
CREATE USER 'app'@'%' IDENTIFIED BY 'pass';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app'@'%';
FLUSH PRIVILEGES;
-- 修改密碼
ALTER USER 'app'@'%' IDENTIFIED BY 'newpass';
-- 刪除用戶
DROP USER 'app'@'%';
SHOW DATABASES;
USE mydb;
SHOW TABLES;
DESC tbl_name; -- 結構
CREATE DATABASE mydb CHARSET utf8mb4;
DROP DATABASE mydb;
CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(50)) ENGINE=InnoDB;
DROP TABLE t;
TRUNCATE TABLE t; -- 清空表(重建,極快)
DELETE FROM t WHERE id > 100;
# 導出單庫
mysqldump -uroot -p --databases mydb > mydb.sql
# 導出多庫
mysqldump -uroot -p --databases db1 db2 > multi.sql
# 導出單表
mysqldump -uroot -p mydb t1 t2 > tables.sql
# 導入
mysql -uroot -p < mydb.sql
# 或登入後
SOURCE /path/to/mydb.sql;
LOAD DATA LOCAL INFILE '/path/data.txt'
INTO TABLE t
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(col1, col2, col3);
LOCAL 讀取客戶端本地文件,無需上傳服務器。REPLACE / IGNORE 處理主鍵/唯一鍵衝突。文件 batch.sql 含多條 SQL(每行以分號結尾):
mysql -uroot -p < batch.sql
適用於:初始化腳本、定時任務、從 Binlog/通用日志提取 SQL 重放。
-- 篩選
SELECT * FROM t WHERE c1 = 'v' ORDER BY c2 DESC;
SELECT * FROM t WHERE c1 LIKE '%kw%';
SELECT * FROM t WHERE c1 IN ('a','b','c');
SELECT * FROM t WHERE c1 BETWEEN 1 AND 100;
-- 聚合
SELECT COUNT(*), SUM(c1), AVG(c1), MAX(c1), MIN(c1) FROM t WHERE ... GROUP BY c2;
-- 修改
UPDATE t SET c1='v' WHERE id=1;
UPDATE t SET c1=v1, c2=v2 WHERE ...;
-- 刪除
DELETE FROM t WHERE ...;
DELETE FROM t; -- 全表刪除,慎用
sudo mysql
CREATE DATABASE mydb;
USE mydb;
SOURCE /path/backup.sql;