一.需求背景
将同一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
再执行恢复成功。
后续建好帐号和授权,即可交付给开发。