一.需求背景
將同一mysql實例上的md_ls庫複製一份新庫,新庫名爲md_ls_s2。
mariadb 10.1.16
二.導出操作
對md_ls庫進行導出操作
cd /apps/sh/tool
./mydumper --user=root --password='密碼' --long-query-guard=120 --socket /tmp/mysql3306.sock --database=md_ls
--outputdir=/apps/mysql_backup//mydumper/temp -t 8 --verbose=3 --logfile=/apps/mysql_backup//mydumper/temp/mydumper.log
三.建立新庫名
create database md_ls_s2;
四.導入操作
cd /apps/sh/tool
./myloader --user=root --password='密碼' -B md_ls_s2 -d /apps/mysql_backup/mydumper/temp
--socket /tmp/mysql3306.sock
報錯一:
* (myloader:14026): CRITICAL **: Error restoring md_ls_s2.bak_17030701_go_anto_quotation from file md_ls.bak_17030701_adc_quotation-schema.sql: Table
'bak_17030701_adc_quotation' already exists
原因分析:是由於前面有執行過導入操作,雖然有報錯,但表結構是有導入,所以下次再導入時會提示表存在。
處理方法:將md_ls_s2庫drop,並重建後,重新導入。
報錯二:
** (myloader:6931): CRITICAL **: Error restoring md_ls_s2.v_code_master from file md_ls.v_code_master-schema.sql.gz: Unknown storage engine 'MyISAM'
show variables like 'enforce_storage_engine';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| enforce_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)
將表的定義sql文件更改爲innodb:
sed -i "s/)ENGINE=MyISAM;/)ENGINE=InnoDB;/g" *schema.sql
報錯三:
** (myloader:19641): CRITICAL **: Error restoring md_ls_s2.v_code_master from file md_ls.v_code_master-schema.sql: This table type requires a primary key
show variables like 'innodb_force_primary_key';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_force_primary_key | ON |
+--------------------------+-------+
set global innodb_force_primary_key=off
再執行恢復成功。
後續建好帳號和授權,即可交付給開發。