MYSQL数据备份还原小结

Home / Article MrLee 2017-8-31 4071

网上有一大堆关于数据库的备份和还原的教程,不过总有些特例用那些方法不管用。今天小结了一下原因。
拿本站来说,是wordpress内容系统。数据库编码是UTF-8。根据网上操作,备份完成之后,总是不能正常恢复,恢复就出错。查看了日志,里面有乱码,心想肯定是乱码导致了SQL语句不是有效的。所以才有此错误。后来总结了一翻。用phpMyAdmin查看了wordpress表的属性,它的wp_posts是utf8mb4_unicode_ci,在网上查了下资料,说是这个比general空间占更多,可能是多了一个字节,这个我没细究。那么把备份语句改一下。

mysqldump --default-character-set=utf8mb4 -uroot -pXXXXX wordpress > /tmp/old.sql


最后直接用navicat创建一个wordpress库,如下图


然后就可以正常的执行下载好的old.sql写到新的目标数据库了。如果navicat提示MySQL server has gone away错误,那么只需要将mysql的配置文件my.ini下面的max_allowed_packet,wait_timeout,interactive_timeout 改成以下值,保存。重启mysql就行了。

[mysqldump]
quick
max_allowed_packet = 16M
wait_timeout=288000
interactive_timeout = 288000


如果有Lost connection to MySQL server during query错误,可以在[mysqld]加入skip-name-resolve

[mysqld]
port=3306
explicit_defaults_for_timestamp = TRUE
skip-name-resolve
max_allowed_packet = 16M
wait_timeout=288000
interactive_timeout = 288000


 

本文链接:https://www.it72.com/12235.htm

推荐阅读
最新回复 (0)
返回