一次重装mysql的记录

/ 0评 / 0

上个星期天下午突然心血来潮想升级一下vps上的mysql ,结果一路磕磕碰碰,一折腾就是4、5个小时,这就是所谓的作死吧。 首先,重中之重就是先完整备份原来的数据库,连同用户和权限一起。

mysqldump -uroot -p --routines --all-databases  --flush-privileges -r xxx.sql

然后,卸载原来的mysql。

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

然后,再安装新版的mysql,贴上mysql的官方教程链接吧。和别的教程不同,官方的教程中要多安装一个deb包,用于 apt 安装 mysql 的时候提示输入初始root密码,否则好像会生成随机密码,改起来超级不方便。 到现在为止一切正常,登入 mysql OK,导入刚刚备份出来的文件

source xxx.sql

好了,悲剧发生了。不知道为什么导入到一半提示连接丢失错误,退出mysql后再也登录不进去了。重启一下看一下吧,结果启动失败, 。 懒得管什么原因了,反正也没数据,干脆再重装一次吧,结果用 apt remove mysql-server 直接卸载失败,提示找不到刚刚mysql官方要求装的deb包。。 。要用上面给出的卸载mysql方法。 再然后,就是疯狂Google时间了。在翻看各种好像看得懂又看不懂的各种英语文章的时候,偶然在stackoverflow看到有人说导入sql大文件的时候出现错误,可以调高最高的query包大小来避免。 一言惊醒梦中人啊,mysql对最大的query长度是有限制的。虽然我的mysql文件也才50多M,但还是按照答案来把限制提高。 好了,首先要再把mysql卸载了,再次干净安装。登录mysql,调高配置

mysql -u root -p
set global net_buffer_length=1048576;
set global max_allowed_packet=1073741824;
set global read_buffer_size=2147479552;
SET foreign_key_checks = 0;
source xxx.sql
SET foreign_key_checks = 1;

看着一行行白色log,没有报错,搞定了。但时间已经过去5个小时,还没吃完饭呢。 经过这次之后,学到的不是对mysql更多的技巧和知识,而是: 没事别瞎折腾!

参考链接:

https://askubuntu.com/questions/172514/how-do-i-uninstall-mysql https://stackoverflow.com/questions/23440800/large-mysql-dump-failed-to-be-imported

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注