我刚刚完成了Debian升级到Stretch,结果,我们的邮件服务器(postfix / courier / saslauthd / mysql – 没有任何validation)有问题。 结果,我做了禁止,并重新启动服务器。 现在,我无法让MySQL恢复。 系统错误是刺激性的模糊,并没有太多的基础上进行search。 这是我得到的一切:
$ sudo service mysql status ● mysql.service - LSB: Start and stop the mysql database server daemon Loaded: loaded (/etc/init.d/mysql; generated; vendor preset: enabled) Active: failed (Result: exit-code) since Tue 2017-08-29 19:13:26 UTC; 2min 49s ago Docs: man:systemd-sysv-generator(8) Process: 18202 ExecStop=/etc/init.d/mysql stop (code=exited, status=0/SUCCESS) Process: 19651 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE) Aug 29 19:12:55 server.name.tld systemd[1]: Starting LSB: Start and stop the mysql database server daemon... Aug 29 19:12:55 server.name.tld su[19677]: Successful su for mysql by root Aug 29 19:12:55 server.name.tld su[19677]: + ??? root:mysql Aug 29 19:12:55 server.name.tld su[19677]: pam_unix(su:session): session opened for user mysql by (uid=0) Aug 29 19:13:26 server.name.tld /etc/init.d/mysql[19977]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in Aug 29 19:13:26 server.name.tld mysql[19651]: Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed! Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Control process exited, code=exited status=1 Aug 29 19:13:26 server.name.tld systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon. Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Unit entered failed state. Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Failed with result 'exit-code'.
唯一增加的syslog最重要的是mysqladmin无法连接到套接字。 这只是因为MySQL并不是真正的开始。
我已经检查,以确保它可以写入/ var / run / mysqld,以及适当的日志目录。 MySQ:日志实际上没有任何帮助; 自从关机消息重新启动后,没有任何信息被写入其中。 我还仔细检查了/etc/mysql/my.cnf中的目录条目是否应该是它们所在的位置。 我也有从旧版本更新的myisam-recover-options和key_buffer_sizevariables名称。
我可以使用sudo mysqld
手动启动mysql,进程将运行并且套接字文件将显示在正确的位置,但实际上并没有发生任何事情 。 我在控制台中得到的是:
2017-08-29 19:35:03 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-08-29 19:35:03 0 [Warning] Insecure configuration for --secure-file-priv: Data directory is accessible through --secure-file-priv. Consider choosing a different directory. 2017-08-29 19:35:03 0 [Note] mysqld (mysqld 5.6.36-1~dotdeb+7.1-log) starting as process 24760 ...
预编辑: 最后 (像5 +分钟)它回到MySQL运行的命令提示符,但似乎并没有保持运行。 过了一会,我会回来find它只是…停下来。 MySQL日志仍然没有任何显示,在syslog中找不到任何关于它的东西。 我放弃了,备份了数据库并重新安装了MySQL(只是实际的服务器软件包,不常见,因为它会删除一堆我不想冒险的软件包)。 重新安装之后…它和以前完全一样了。
不幸的是,即使在MySQL暂时运行时,saslauthd仍然不会对后缀/信使的数据库进行validation(它之前没有问题)。 我想这是另一个职位,一旦我让MySQL再次正常运行。
在一个漫长的一天结束之际,我的智慧已经结束了。
编辑:解决scheme中的评论: MySQL更新后不会启动
Debian 8“Jessie”中的MySQL版本是5.5。 安装时,大多数用户将安装mysql-server-package,这取决于mysql-server-5.5软件包。 在Debian 9“Stretch”中,mysql-server软件包依赖于一个名为default-mysql-server的新软件包。 这个包依次取决于mariadb-server-10.1。 Jessie中没有default-mysql-server软件包。
在Debian 9中从MySQL移动到MariaDB,阅读升级mysql
文章到mariadb
你有没有检查,看是否所有的文件夹/文件(mySQL需要运行)设置为正确的所有者:组和权限?