我遇到错误无法通过socket' /var/run/mysqld/mysqld.sock'连接到本地MySQL服务器;在Ubuntu 12.04.5 LTS。 所以,我从Ubuntu 12.04.5 LTS 卸载了mysql 5.5 。但是当我试图安装mysql 时,我无法安装mysql。
我使用以下命令卸载mysql:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get remove --purge mysql-server-5.5 mysql-client-5.5 mysql-servercore-5.5 mysql-client-core-5.5
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo deluser mysql
我使用以下命令安装mysql 5.5:
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-server
但我遇到了以下错误:
AppArmor parser error for /etc/apparmor.d/usr.sbin.mysqld in /etc/apparmor.d/usr.sbin.mysqld at line 9: Could not open 'abstractions/mysql'
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--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.5; however:
Package mysql-server-5.5 is not configured yet.
dpkg: error processing 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.5
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
当我键入' mysql'从终端返回错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我在谷歌搜索后尝试 telnet 127.0.0.1 3306 ,它返回连接拒绝。
有人可以提出解决方案吗?
答案 0 :(得分:7)
这是Mariadb为我修复的内容
首先找出你的mysql配置文件(很可能位于/etc/mysql/my.cnf
或/etc/my.cnf
是否具有正确的mysql.sock条目
您可以通过运行找到mysql.sock文件所在的位置
find / -type s
,如果你的mysql配置中的条目不正确,文件修复它,也要确保mysql.pid也有正确的路径。
现在尝试启动mysql服务器,如果它启动正常,你可以看到所有的DB和表,你很好,不需要关注其余的帖子。
如果mysql在修复mysql.sock路径后无法启动,请继续阅读
将以下内容添加到my.cnf文件中,
在innodb_force_recovery = 1
块内 mysqld
,然后重新启动mysql。
如果它无法启动,每次增加一个数字,但请记住,在3之后,它们可能会有一些数据丢失(不是发生在我身上,但我只读过有关3以上的任何内容作为打捞措施,而不是恢复)
如果您之前拥有的某些表格不要惊慌,请停止显示它们在引擎中不存在。 Ones mysql成功启动(如果你还没有备份,现在最好先制作一个,以防万一从这里开始向南),从my.cnf文件中删除innodb_force_recovery = 1
并重新启动mysql,你的所有表都应该是再次可用。
帮助我的帖子
答案 1 :(得分:1)
在我的情况下,是因为系统内存RAM没有足够的空间来容纳“ free -hw”数据库,所以我可以使用swap来解决它