本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
求助,想在mysql里面导入大文件,4g,在控制台当中用了source语句,刚开始的时候一切都很正确
Query OK, 1710 rows affected (0.27 sec)
Records: 1710 Duplicates: 0 Warnings: 0
然后导入一半之后,就会突然开始报错并出现乱码,像这样
ERROR 2005 (HY000): Unknown MySQL server host '2銆佹嫑鍟嗛?鍝佹姇鏀鹃〉闈㈡惌寤鸿惀閿?椿鍔ㄤ竴浣撳寲娴佺▼鎼?缓rn' (0)
ERROR: Can't connect to the server 尝试了好几遍,更改了ini中的
innodb_buffer_pool_size = 1024M ; Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 512M innodb_log_buffer_size = 64M
改成了
innodb_buffer_pool_size = 512M ; Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 256M innodb_log_buffer_size = 32M
还是不好用,重新下载了数据,然后导入,仍旧同样的问题。 而且好几次都是导入了67张表格。似乎是同一个地方或者同样的时间出bug?
导入试了两天了还是不成功,求大佬拯救……
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到您描述的问题,可能涉及到几个方面的原因,包括MySQL的配置、文件编码问题、网络稳定性或数据文件本身的损坏。以下是一些排查和解决建议:
检查MySQL配置:
innodb_buffer_pool_size
、innodb_log_file_size
和innodb_log_buffer_size
等参数,这些调整是合理的,尤其是对于大文件导入,增加缓冲池大小可以提高效率。但请注意,调整这些参数后需要重启MySQL服务才能生效。max_allowed_packet
足够大以容纳您的SQL语句或数据包。这个参数限制了服务器能处理的最大数据包大小,如果导入文件中的单个SQL语句或数据行过大,可能会导致错误。可以在MySQL配置文件(my.cnf/my.ini)中设置,如:max_allowed_packet=512M
,同样需要重启MySQL服务。文件编码与字符集:
SHOW VARIABLES LIKE 'character_set_%';
查看当前字符集设置。网络稳定性:
数据文件完整性:
分批次导入:
日志分析:
使用命令行工具而非控制台:
资源监控:
如果以上步骤都无法解决问题,可能需要进一步详细检查数据文件的具体内容,或者考虑联系阿里云的技术支持获取更专业的帮助。