加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MySQL数据库导入导出大数据量注意事项

发布时间:2022-12-17 14:03:54 所属栏目:MsSql教程 来源:未知
导读: MySQL数据库导入导出大数据量注意事项
MySQL导出导入小数据量时可以使用Navicate等客户端工具,但是当数据库量达到一定后,使用图形化的客户端工具会出现各种各样的问题,比如Navicate会出

MySQL数据库导入导出大数据量注意事项

MySQL导出导入小数据量时可以使用Navicate等客户端工具,但是当数据库量达到一定后,使用图形化的客户端工具会出现各种各样的问题,比如Navicate会出现进度百分比计算不对无法结束的问题。

导出

导出一个数据库的结构以及数据,通过Xshell远程连接Mysql服务器,在命令行窗口执行mysqldump命令进行操作

语法

mysqldump dbname -uroot -p > dbname.sql

实例

mysqldump steal-treasure -uroot -p > steal-treasure.sql

待命令执行完成后mssql数据库导入,即可完成导出

导入问题

通过source命令导入sql脚本出现如下错误

ERROR 1231 (42000): Variable 'time_zone' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'foreign_key_checks' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'unique_checks' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'character_set_client' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'collation_connection' can't be set to the value of 'NULL'
ERROR 1231 (42000): Variable 'sql_notes' can't be set to the value of 'NULL'

方案方案一 全局配置

修改/etc/my.cnf配置文件

[root@swk-store-208 ~]# vim /etc/my.cnf

调整配置节[mysqld],添加或调整配置max_allowed_packet

max_allowed_packet=16M

使得参数的值变大重启Mysql服务即可。

[root@swk-store-208 ~]# service  mysqld restart

方案二 临时配置

检查目前数据库配置的导入文件大小

SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';

根据当下需要导入文件的实际大小合理的调整上述参数

全局配置生效

SET GLOBAL max_allowed_packet=1024*1024*1024*10;

当前会话生效

set max_allowed_packet=1024*1024*1024*10;

此处是设置了10G大小的限制

Linux下面可以使用10241024102410,Windows下面使用计算好的值

10241024102410= 10737418240

检查是否生效

SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';

实施检查

执行完数据的导入后,通过Navicate等图形化客户端工具在查询Mysql对应的数据库时会发现查询和对应的操作会异常缓慢,此时重启Mysql服务也会出现无法正常重启的情况。此时不要慌张,等待半个小时到一个小时再操心数据库即可发现一切正常,天气晴朗,要给它一点时间缓一缓。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!