MySQL错误2002(HY000):无法通过套接字连接到本地MySQL服务器

3
当我的WordPress服务器开始抛出MySQL错误时,我注意到了这个问题。为了尝试调试WordPress,我尝试手动连接。
我得到了以下信息:
$ mysql -u root -p -h localhost -P 3306                                                                                                                                         
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/bitnami/mysql/tmp/mysql.sock' (2)

我也尝试了不加-h选项和127.0.0.1。

看起来MySQL正在运行。

$ ps -ef | grep mysql                                                                                                                                                           
mysql    14743     1  0 15:20 ?        00:00:00 /usr/sbin/mysqld
bitnami  14939 13882  0 15:28 pts/0    00:00:00 grep --color=auto

已安装mysql-server,但是/opt/bitnami/mysql/tmp/mysql.sock不存在。

看起来MySQL正在监听正确的端口。

$ telnet 127.0.0.1 3306
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
[
5.5.54-0ubuntu0.14.04.1,IIq{;Rh�k>5/)"m"[&J#mysql_native_password

!#08S01Got packets out of orderConnection closed by foreign host.

根据这里的建议:

$ sudo /opt/bitnami/ctlscript.sh status
php-fpm already running
apache already running
mysql not running
$ sudo /opt/bitnami/ctlscript.sh start mysql
2017-02-14T16:53:25.064586Z mysqld_safe Logging to '/opt/bitnami/mysql/data/mysqld.log'.
2017-02-14T16:53:25.233250Z mysqld_safe Starting mysqld.bin daemon with databases from /opt/bitnami/mysql/data
2017-02-14T16:53:28.400598Z mysqld_safe mysqld from pid file /opt/bitnami/mysql/data/mysqld.pid ended
/opt/bitnami/mysql/scripts/ctl.sh : mysql  could not be started
Monitored mysql

以下是来自 /opt/bitnami/mysql/data/mysqld.log 的几行精选内容。看起来存在冲突。

2017-02-14T17:03:31.274720Z 0 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
2017-02-14T17:03:31.274778Z 0 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
2017-02-14T17:03:31.274835Z 0 [Note] Server socket created on IP: '127.0.0.1'.
2017-02-14T17:03:31.274888Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2017-02-14T17:03:31.274901Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2017-02-14T17:03:31.274952Z 0 [ERROR] Aborting

sudo find / -name mysql.sock 它在哪里? - aynber
1
/opt/bitnami/mysql/data/mysqld.log 中有没有任何提示? - aynber
sudo find / -name mysql.sock 没有结果,日志信息已添加到主帖中。 - Jones
@Jones 别忘了在回复中加上@和对方的名字,否则他们将无法收到通知。 - Mike
1
根据您的ps,它正在运行,但没有sock文件。尝试 sudo service mysql stop,或杀死进程 sudo kill 14743。然后再次运行脚本。 - aynber
sudo service mysql stopsudo /opt/bitnami/ctlscript.sh start mysql 让它重新工作了。 - Jones
3个回答

3
问题在于您已经运行了一个不是 Bitnami 的 MySQL 服务器。在启动 Bitnami 的 MySQL 服务器之前,您应该先停止该服务。
您可以尝试使用以下命令停止: $ sudo service mysql stop 如果这不起作用,您可以杀死该进程: $ sudo kill 14743
最后,使用此命令启动 Bitnami 的 MySQL 服务器: $ sudo /opt/bitnami/ctlscript.sh start mysql
启动该服务器后,您应该能够无问题连接。

3

在进行任何操作之前,请先检查空间。确保它没有使用100%。

df -h

在此输入图片描述

如果有空间可用。

检查Mysql是否正在运行。

ps xufa | grep mysql

重新启动mysql

sudo service bitnami restart mysql

0
有时候,你只需要重新开始。 试试以下方法。
sudo opt/bitnami/ctlscript.sh stop

跟随之后
sudo opt/bitnami/ctlscript.sh start

你也可以重新启动,但我遇到过重新启动无效的情况,而停止和启动却有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接