我最近从 Ubuntu 14.04LTS 升级到了 15.04,在升级过程中,MySQL 可能出现故障。升级后,我运行了以下命令(启动 mysql):
sudo service mysql start
结果是命令未找到,它建议我安装 mysql-server 和 mysql-common 包,这意味着它们在升级期间被清除了。我决定再次安装这些包:
sudo apt-get install mysql-server
这是我遇到问题和错误的地方。当我运行上述命令时,我的终端上显示的内容(部分内容):
Setting up mysql-server-5.6 (5.6.24-0ubuntu2) ...
Job for mysql.service failed. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.6 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.6; however:
Package mysql-server-5.6 is not configured yet.
Package mysql-community-server which provides mysql-server-5.6 is not installed.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
mysql-server-5.6
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
我已经检查过几乎“类似”的问题这里,这里和这里但似乎都无济于事,这是旧升级造成的。此外,我决定尝试从 Ubuntu 软件中心安装服务器、客户端和工作台。安装过程中出现错误,但似乎已安装,因为工作台显示服务器正在运行。我碰巧在 ./opt 文件夹中有 LAMPP 堆栈,这里可能存在冲突。另一个问题是,我无法从终端甚至工作台控制服务器。如果我尝试使用以下命令从终端访问 MySQL:
mycomp:~$ mysql -u user -p
我得到的结果:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)
由于 Ubuntu 15.04 几天前才发布,其他地方很难找到解决方案。如果这篇文章应该发表在 MySQL 论坛上,那么我对这个错误表示歉意,但我会很感激任何给出的答案。
答案1
启动mysql时检查日志:
- 在一个终端中:
tail -f /var/log/mysql/error.log
- 在另一个中:(
sudo service mysql start
也许您首先需要用 停止服务sudo service mysql stop
)。 - 如果有错误,则需要修复它们。
就我而言,我遇到了以下错误:
[错误] mysqld:未知变量“table_cache=256”
[错误] 中止
由于mysql问题:table_cache 重命名为 table_open_cache服务器没有启动。
在我的设置中重命名此变量(/etc/mysql/conf.d/my_custom.cnf)解决了我的问题并且mysql按原样启动。
最后我通过调用更新了mysqlsudo mysql_upgrade -u root -p
答案2
您可能已经解决了这个问题,但希望它可以帮助遇到同样问题的其他人。
我的 14.10-15.04 升级卡在进程尝试启动 mysqld 时,并显示一些关于 root 管理员密码的模糊消息。我继续查看正在运行的 mysqld 进程,发现它的进程 ID 与升级进程所说的要启动新 mysqld 的进程 ID 完全不同。所以我想“sudo /etc/init.d/mysql stop”可能会有帮助。瞧,升级过程一路飞速完成。
(哎呀。发错帖子了。我会在另一个帖子里发这个。很抱歉)
祝你好运。
答案3
对我来说,在我从 14.04 升级到 15.04 并从 systemd 切换回 Upstart 后,MySQL 就崩溃了。
有趣的是,我可以手动启动 mysql,但无法通过 /etc/init.d/(即使用sudo service mysql start
)启动它。在阅读了 Ubuntu Upstart 脚本后,很明显 Ubuntu 需要apparmor
存在才能从 Upstart 运行 MySQL。
因此,对我有用的解决方案是:
sudo aptitude install apparmor
这就是所需要的全部了。
答案4
我遇到了类似的错误,而我在互联网上看到的任何帮助都无济于事。问题原来是一个愚蠢的问题。我之前将 mysql 的默认数据目录更改为辅助硬盘。由于未安装此磁盘,因此我收到了错误。
要检查此类访问问题是否导致错误,请在 mysql 配置文件中找到 mysql 的当前数据目录。
less /etc/mysql/mysql.conf.d/mysqld.cnf
在某些情况下,目标配置文件的路径可能会略有不同:
less /etc/mysql/my.cnf
查找条目datadir
并复制路径。查看该目录是否可以通过命令访问cd
。