我们在用mysql数据库时,有时会把这个数据库里的数据弄到另一个数据库,这时候我们会用到把数据导成sql文件,
然后再执行该sql添加数据到另一个数据库中,下面来写一下,本人在操作时遇到的问题,及解决办法:
1.利用连接数据库的图形界面导入sql:
这样导入的方式1是速度慢,2是会遇到各种的报错,比较麻烦:
(一)我们导入sql时会因为导出sql文件执行添加表的顺序不一样会报Cannot delete or update a parent row: a foreign key constraint fails (...);
我们可以使用 SET FOREIGN_KEY_CHECKS=0; 来禁用外键约束.
插入数据后再用 SET FOREIGN_KEY_CHECKS=1; 来启动外键约束.
查看当前FOREIGN_KEY_CHECKS的值可用如下命令 SELECT @@FOREIGN_KEY_CHECKS;
( 二 )在使用批量插入语句时插入大量的数据时,报错 1153 - Got a packet bigger than 'max_allowed_packet' bytes
我们可以使用 set global max_allowed_packet = 2*1024*1024*10 设置最大值为20M
或则在my.ini加入:[mysqld]max_allowed_packet=16M 重新启动mysql
然后再执行插入语句就不会报错了。
2.利用命令导入sql文件
我们有时也会遇到配置的问题报错:
一般在my.ini中配置一下以下参数
max_allowed_packet=100M;这个值当然要大于你导入文件的大小。
wait_timeout=2880000
interactive_timeout = 2880000;mysql的连接时间,如果没有该配置可以加上
windows环境下的命令:
图中1进入mysql的安装目录bin目录下;
图中2:mysql -u root -p test 命令意思是root账户进入test数据库下点击回车数据密码
会出现mysql>表示链接进入test数据库。
导入数据文件:
如上图1输入命令:source e:\data\user_prize.sql意思是执行user_prize.sql文件
如上图2:warning都是0表示导入成功。
希望上面的总结对大家有所帮助。