Linux运维知识之记录分享两个 MariaDB 导入大量记录 MySQL 备份错误的解决
小标 2019-06-20 来源 : 阅读 1089 评论 0

摘要:本文主要向大家介绍了Linux运维知识之记录分享两个 MariaDB 导入大量记录 MySQL 备份错误的解决,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之记录分享两个 MariaDB 导入大量记录 MySQL 备份错误的解决,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

Linux运维知识之记录分享两个 MariaDB 导入大量记录 MySQL 备份错误的解决

昨天晚上明月给三个网站做迁移,在导出导入MySQL数据库到新服务器上 MariaDB 的时候折腾了好长的时间,碰到的错误也是一个接着一个的,虽然一个一个都解决了,但是明月感觉还是很有必要记录分享一下的。


首先给大家先说明一下具体的导入导出场景,三个网站分别在不同的阿里云虚拟主机上,以为业务发展需要三个网站都需要HTTPS支持和更加稳定的服务器,新服务器选的是阿里云ECS的,配置还是很不错哦的,所以直接上的是Linux+Nginx+PHP+MariaDB这样的LNMP生产环境。


导入MySQL数据报错:1064


问题就出在虚拟主机上导出的MySQL备份.sql文件上,在新服务器上导入总是提示“ERROR 1064 (42000): You have an error in your SQL syntax1”这样的错误,检查了好久才发现是虚拟主机上导出的.sql文件都是 UTF+BOM 格式的文件,这就造成直接在phpMyAdmin里导入就会出现无法识别.sql里的编码的问题,MySQL提示的也就是“语法问题”了。


解决办法


解决其实很简单,就是将这个导出的.sql文件使用纯文本编辑软件打开以 UTF 无签名的格式再保存覆盖一下即可正常的导入了。


这个问题目前明月就在阿里云虚拟主机上碰到过,这个可能跟阿里云虚拟主机默认数据库管理用的是 DMS 的缘故,使用phpMyAdmin估计就没有这个问题了。


导入MySQL数据报错:1153终止导入


这个错误一般都是造成数据导入不完整,因为是错误造成“终止导入”了。报错“1153 - Got a packet bigger than 'max_allowed_packet' bytes”。一般都是因为当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。


客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。一般情况下,服务器默认max-allowed-packet为1MB。


解决办法


其中net_buffer_length参数也会影响到这个错误的出现,所以要跟max_allowed_packet一起来修改,可以通过编辑MySQL的配置文件my.cnf(具体位置默认是/etc/my.cnf),修改里面对应的参数值就可以了,然后保存退出重启MySQL。


但是明月这样竟然没有效果,没有办法只能是使用下面的MySQL命令行来设置这两参数了,如下:


mysql -u root -p
set global net_buffer_length=1000000;
set global max_allowed_packet=1000000000;
quit


这样再导入就可以顺利完成了,完美的导入数据!造成这个错误一般都是因为导入的数据量过大,超出了max_allowed_packet和net_buffer_length的默认值触发的,所以在导入大量记录的MySQL数据的时候一定要提前调整好这两个参数的赋值以备不测,一般只要数据记录超过2万条以后一定要注意提前修改默认赋值。


最后再吐槽一下LNMP1.5里集成的acme.sh脚本,问题实在是太多了,使用DNS API模式申请证书都是提示“无效主机域名”,前前后后测试了N遍都是这个问题,我自己的服务器上使用的是 GitHub 上的acme.sh就完全没有问题,三个站点的Let’s Encrypt证书全部一次就申请成功,无解中……。


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程