# 導出(指定字符集、壓縮)
mysqldump --default-character-set=gb2312 -h255.255.0.0 -uroot -pxxxxxx mydatabase > d:\data.sql
# 導入
mysql --default-character-set=gb2312 -h255.255.0.0 -uroot -pxxxxxx mydatabase < d:\data.sql
mysqldump -P3306 -uroot db > db.bak(建議加 --opt)mysql -P3307 -uroot db < db.bakcp -R /old/data/mysql /new/data/mysql_upgrade(含 mysqlcheck、mysql_fix_privilege_tables)mysqldump -P3306 -uroot --tab=/backup/db db(生成 .sql 結構 + .txt 數據)cat /backup/db/*.sql | mysql -P3307 -uroot dbmysqlimport db /backup/db/*.txt.frm .MYD .MYI 到新版數據目錄mysql_upgrade、切換端口、重啟SELECT Host, User FROM mysql.user; 確認有 % 或具體 IP 授權bind-address 配置
net stop mysql
mysqld-nt --skip-grant-tables
# 另開窗口
mysql
USE mysql;
UPDATE user SET Password=PASSWORD('new_pass') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
# 任務管理器殺掉 mysqld-nt,重新啟動服務
killall -TERM mysqld
bin/safe_mysqld --skip-grant-tables &
mysql
USE mysql;
UPDATE user SET Password=PASSWORD('new_pass') WHERE User='root';
FLUSH PRIVILEGES;
killall -TERM mysqld
service mysqld start
# 會話級
SET NAMES 'utf8';
# 或分項設置
SET character_set_client = utf8; SET character_set_connection = utf8; ...
# 全局永久(修改 my.cnf 重啟)
[mysqld]
default-character-set = utf8
# 按查詢次數排序 Top 10
mysqldumpslow -s c -t 10 /var/log/mysql/slow.log
# 按耗時排序 Top 10
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
# 含左連接的耗時 Top 10
mysqldumpslow -s t -t 10 -g "left join" /var/log/mysql/slow.log
-s c/t/l/r:按次數/時間/查詢時間/返回行數排序;-t N:Top N;-g pattern:正則過濾。
SHOW VARIABLES LIKE '%var_name%';
SELECT @@var_name;
# 1. 看當前非 Sleep 進程
mysql -uroot -ppwd db -e "SHOW FULL PROCESSLIST" | grep -v Sleep
# 2. 按執行時間倒序
mysql -uroot -ppwd db -e "SHOW FULL PROCESSLIST" | grep -v Sleep | sort -k6rn > sort.tmp
# 3. 高 IOWAIT 看臨時表
mysql -uroot -ppwd db -e "SHOW GLOBAL STATUS LIKE '%tmp%'"
關注 Creating tmp table、Sending data、Statistics 等狀態定位瓶頸。
CHANGE MASTER TO
MASTER_HOST='IP',
MASTER_USER='rep_user',
MASTER_PASSWORD='rep_pass',
MASTER_LOG_FILE='binlog.000001',
MASTER_LOG_POS=0;
nohup mysqldump --databases DB -uUser -pPass --lock-all-tables -F > DATA.sql &
# -F 刷新 Binlog,配合 CHANGE MASTER 實現無縫同步
mysqldump -d DB -uUser -pPass > struct.sql
mysqldump -t DB -uUser -pPass > data.sql
mysqlbinlog binlog_file --start-position=偏移量
GRANT REPLICATION SLAVE ON *.* TO 'user'@'IP' IDENTIFIED BY 'pass';
SHOW SLAVE STATUS \G
SHOW MASTER STATUS;
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
# 抓取 3306 端口通信內容
tcpdump -A "dst port 3306"