# Windows:右鍵「此電腦」→屬性→高級系統設置→環境變量 # PATH 新增:C:\Program Files\MySQL\MySQL Server 8.0\bin # Linux:通常安裝包已配置,若無 echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc && source ~/.bashrc
mysql -h localhost -u root -p # 輸入密碼後進入 mysql> 交互模式 # 常用交互命令 SHOW DATABASES; USE db_name; SHOW TABLES; DESC tbl_name;
| 場景 | 命令 | 說明 |
|---|---|---|
| 全庫導出 | mysqldump -h localhost -u root -p db_name > /path/db_name.sql | 含結構+數據 |
| 單表導出 | mysqldump -h localhost -u root -p db_name tbl_name > /path/tbl_name.sql | |
| 僅導出結構 | mysqldump -h localhost -u root -p db_name --no-data > /path/db_struct.sql | --add-drop-table 可加 DROP |
| 導出壓縮 | mysqldump ... | gzip > /path/db_name.sql.gz | 管道壓縮,節省空間 |
| 排除表 | mysqldump ... --ignore-table=db.log_table | 多表重複參數 |
| 主從一致性備份 | mysqldump --single-transaction --master-data=2 ... | InnoDB 熱備份標配 |
# 1. 先建庫(若不存在) mysql -h localhost -u root -p -e "CREATE DATABASE db_name CHARSET=utf8mb4;" # 2. 導入 mysql -h localhost -u root -p db_name < /path/db_name.sql # 3. 壓縮文件直接導入 gunzip -c /path/db_name.sql.gz | mysql -h localhost -u root -p db_name
# my.cnf [mysqld] max_allowed_packet = 512M # 重啟生效
mysql --max_allowed_packet=512M -h localhost -u root -p db_name < big.sql
# 按行分割(如 10萬行一個文件) split -l 100000 big.sql chunk_ # 依次導入 for f in chunk_*; do mysql -h localhost -u root -p db_name < $f; done
編譯參數 -DMAX_ALLOWED_PACKET=536870912 (512M)。
; php.ini memory_limit = 256M upload_max_filesize = 200M post_max_size = 200M ; 修改後重啟 php-fpm / Apache
--single-transaction --master-data=2(主庫)