Mysql在重启时没有持久化

时间:2017-01-13 21:46:53

标签: mysql

我最近买了一台运行Ubuntu 16.04.1 LTS(64位)的新笔记本电脑。我已经安装了几十个应用程序,但其中一个给了我一个很头疼的问题,感谢任何帮助。

我从一个关于mysql的清单开始:

sudo apt remove --purge mysql-server mysql-client mysql-common
sudo apt autoremove
sudo rm -rf /var/lib/mysql*
sudo apt install mysql-server

我从备份安装数据库,一切正常。

我关机/开机笔记本电脑和mysql无法正常工作。首先守护程序没有运行:

ps -A | grep sql
2056 ? 00:00:00 mysql-systemd-s

但是我不认识的东西叫mysql-systemd-s正在运行。

现在无法使用mysql:

mysql -u root -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial 
communication packet', system error: 104

该服务似乎无法启动:

service mysql start
Job for mysql.service failed because the control process exited with 
error code. See "systemctl status mysql.service" and "journalctl -xe"  
for details.

但这些都不是很有用。 /var/log/mysql/error.log有更多信息:

......
2017-01-13T21:01:04.926244Z 0 [Warning] Failed to set up SSL because 
of the following SSL library error: SSL context is not usable without 
certificate and private key
2017-01-13T21:01:04.926272Z 0 [Note] Server hostname (bind-address): 
'127.0.0.1'; port: 3306
2017-01-13T21:01:04.926288Z 0 [Note] - '127.0.0.1' resolves to 
'127.0.0.1';
2017-01-13T21:01:04.926327Z 0 [Note] Server socket created on IP: 
'127.0.0.1'.
2017-01-13T21:01:04.927774Z 0 [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
2017-01-13T21:01:04.927897Z 0 [ERROR] Aborting

然而,运行mysql_upgrade的建议没用,因为除非mysql服务器正在运行,否则无法运行mysql_upgrade!由于此错误,mysql服务器未运行。

所以,我删除并重新安装所有内容并运行mysql_upgrade。这似乎完成没有错误。但是,当我重新启动机器时,我又回来了,没有mysql工作。

我也尝试使用--skip-grant-tables选项启动mysqld,但这仍然不允许连接。

目前,每次重新启动计算机时,我都要删除所有mysql的痕迹,重新安装mysql,然后从备份中重新加载我的数据库。这真是一种痛苦。

有没有人对发生的事情有任何想法?

1 个答案:

答案 0 :(得分:0)

问题似乎已得到解决。线索是,如果我没有恢复自己的数据库备份,mysqld似乎能够在断电/开机后继续存在。如果我确实恢复了备份,那就不行了。

通常,我从不查看我的数据库备份;相反,我只是做一个mysqldump并保留生成的文件,以防万一。

鉴于上面的线索,我查看了mysqldump生成的文件并将其缩小到最小大小,以便它只包含我想要恢复的数据库。这似乎已经成功了。

我保留了坏文件,并且一直在玩差异以找到令人讨厌的东西,但还没有找到它。