1.不導出系統(tǒng)數據庫缴罗,以免在導入的時候出現錯誤:
ERROR 1726 (HY000) at line 17288: Storage engine 'InnoDB' does not support system tables. [mysql.columns_priv]
【解決辦法】:
mysql -h127.0.0.1 -uroot -P3307 -p123asd -e "show databases;" | grep -Ev "Database|information_schema|mysql|sys|performance_schema"|xargs mysqldump -h127.0.0.1 -uroot -P3307 -p123asd --force -x --databases>dump.sql
其中: --force -x 是為了防止無權限視圖以及其他錯誤助琐。
- 將dump文件導入的時候出現錯誤:
ERROR 1153 (08S01) at line 7250: Got a packet bigger than 'max_allowed_packet' bytes
這是因為有的sql中導出了太長的mediumtext字段,超過了max_allowed_packet定義的最大值面氓。
mysql中一個packet的定義為:
客戶端發(fā)送到mysql 服務端的單個SQL 語句
或者
服務端發(fā)送到客戶端的單行數據
或者
master發(fā)往slave的一個binary log event兵钮。
【解決辦法】
增加max_allowed_packet的配置
- 可以修改配置文件:
[mysqld]
max_allowed_packet=100M
不過這種方法要重啟才能生效。
- 可以修改全局參數舌界,注意要寫成10010241024掘譬,而不能寫100M
set global max_allowed_packet = 100 * 1024 * 1024;
不過這種方法立即對當前啟動的mysql生效。當mysql重啟以后又會恢復到默認配置呻拌。
以上兩種情況根據自身需要配置葱轩。比我的環(huán)境中不能隨便重啟mysql,而我又要臨時導入數據藐握,就選擇方法二靴拱。
修改以后可以用兩種方式查看:
show variables like '%max_allowed_packet%';
select @@max_allowed_packet;