几天前,我设法从 Ubuntu 设置了一个正在运行的 Web 服务器,但由于某些原因,它从今天下午开始就无法运行了?
MySQL 似乎因某种原因卡住了,状态如下:
$ root@localhost:~# systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2019-05-31 14:49:29 UTC; 18s ago
Process: 856 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=1/FAILURE)
May 31 14:49:29 localhost systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
May 31 14:49:29 localhost systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
May 31 14:49:29 localhost systemd[1]: Stopped MySQL Community Server.
May 31 14:49:29 localhost systemd[1]: mysql.service: Start request repeated too quickly.
May 31 14:49:29 localhost systemd[1]: mysql.service: Failed with result 'exit-code'.
May 31 14:49:29 localhost systemd[1]: Failed to start MySQL Community Server.
我尝试重新启动服务器,但没有任何改变。
我不知道为什么会发生这种情况,因为我在过去几个小时内没有对 MySQL 进行任何更改。可能产生影响的是:我将 Cloudflare 添加到我的网站,或者我还更改了 wordpress 安装的所有文件/文件夹的所有者(因此它允许 Wordpress 更新插件等)。也许这个所有者更改对 MySQL 无法再使用 root 连接这一事实产生了影响?
答案1
好吧,我不知怎么找到了解决方案:它在我的 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件中。我有:
# [client]
default-character-set=utf8
我应该有:
[client]
default-character-set=utf8
我通过查看 sudo journalctl -xeu mysql 发现了以下几行:
-- Unit mysql.service has begun starting up.
Jun 02 08:09:24 localhost mysql-systemd-start[18290]: ERROR: Unable to start MySQL server:
Jun 02 08:09:24 localhost mysql-systemd-start[18290]: 2019-06-02T08:09:24.858095Z 0 [ERROR] unknown variable 'default-character-set=utf8'
Jun 02 08:09:24 localhost mysql-systemd-start[18290]: 2019-06-02T08:09:24.861413Z 0 [ERROR] Aborting
确实,我之前尝试将 UTF8 设置为默认值,但不知何故忘记取消注释代码 [客户端],这阻止了 MySQL 启动。