在 Ubuntu 20.04 中,我尝试安装 mysql 服务器:
sudo apt install mysql-server
并出现以下错误:
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 128938
dpkg: error processing package mysql-server-8.0 (--configure):
installed mysql-server-8.0 package post-installation script subprocess returned error exit status 1
遵循建议这里,我尝试清除并重新安装,但没有效果——我得到了同样的错误。
错误信息不太详细——我该怎么做才能完成安装?
编辑:在文件 /var/log/mysql/error.log 中我看到以下错误消息:
2020-07-09T11:15:12.312553Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2020-07-09T11:15:12.312812Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/var/run/mysqld/mysqlx.sock' failed, can't create lock file /var/run/mysqld/mysqlx.sock.lock'
答案1
我遇到了同样的错误。问题是 my.cnf 包含NO_AUTO_CREATE_USER
在 下sql_mode
。这已在 MySql 8.0 中删除。
我的 中有以下内容/etc/mysql/my.cnf
:
sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
删除后NO_AUTO_CREATE_USER
修复了这个问题。
答案2
使用 查找锁定进程ps -eaf | grep mysql
并注释命令是否返回结果。使用 终止锁定进程sudo kill -9 <locking-process-number>
,然后运行sudo apt purge mysql-server
并重试sudo apt install mysql-server
。
答案3
将 Ubuntu 升级到 20.04 后,我遇到了同样的问题。清除并重新安装 mysql 后,我开始在末尾看到新的错误/var/log/mysql/error.log
。
我的问题具体是Unrecognized variable <name of config variable>
。这些值在我的/etc/mysql/my.cnf
版本中,我选择保留以前的版本,但显然这些配置变量不再受支持。我将它们注释掉,服务器正常启动并重新开始工作。
这些变量具体为query_cache_limit
和query_cache_size
。