【问题标题】:Can't connect to mysql on localhost:3306?无法连接到 localhost:3306 上的 mysql?
【发布时间】:2021-09-30 09:40:56
【问题描述】:

似乎是一个非常基本的问题。但我找不到任何重复的答案。

无法连接到mysql。

我已经重新安装了 mysql-server。没什么区别。

MySql 似乎正在侦听套接字...

dara@laptop-20-04:~/Desktop$ netstat -an | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     690638   /var/run/mysqld/mysqlx.sock
unix  2      [ ACC ]     STREAM     LISTENING     690639   /var/run/mysqld/mysqld.sock

但我无法以 root 身份登录

dara@laptop-20-04:~/Desktop$ sudo /etc/init.d/mysql stop
Stopping mysql (via systemctl): mysql.service.
dara@laptop-20-04:~/Desktop$ sudo mysqld --skip-grant-tables &
[3] 119080
dara@laptop-20-04:~/Desktop$ mysql -u root mysql
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (111)
^G[2]-  Exit 1                  sudo mysqld --skip-grant-tables

我的mysql.cnf

dara@laptop-20-04:.../mysql/conf.d$ cat mysql.cnf
[mysql]
bind-address = localhost

[client]
protocol = tcp

还尝试更改bind-address = 127.0.0.1

mysql版本

dara@laptop-20-04:.../mysql/conf.d$ mysql --version
mysql  Ver 8.0.26-0ubuntu0.21.04.3 for Linux on x86_64 ((Ubuntu))

帮助!

【问题讨论】:

  • MySQL 正在监听 Unix 域套接字 /var/run/mysqld/mysqlx.sock,而不是 TCP 套接字 3306。

标签: mysql ubuntu


【解决方案1】:

正如您所说,MySQL 似乎只在侦听套接字,并且您强制客户端使用 TCP。 请尝试以下操作:

mysql -u root -S /var/run/mysqld/mysqld.sock

【讨论】:

  • 谢谢。为什么设置 bind-address = 127.0.0.1 不能解决它?我以为IP地址强制mysql通过TCP监听?还是我弄错了?
【解决方案2】:

所以基本上日志文件显示锁定文件错误。我本来应该提供这个细节的。您可以在以下位置查看 ubuntu 的日志文件:

tail /var/log/mysql/error.log

> 2021-10-01T10:51:37.787720Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26-0ubuntu0.21.04.3) starting as process 145495
2021-10-01T10:51:37.796108Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-10-01T10:51:37.820698Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

这是 apparmor 的错误配置。我在这里找到了解决方案...

Stackoverflow mysql solution

您首先通过以下方式识别所有 mysql 进程:

$ ps aux | grep mysql

然后你杀死所有这些进程。其中pid是进程ID:

sudo kill <pid>

然后你修复应用装甲:

$ apt install apparmor-profiles

然后mysql启动没问题:

sudo systemctl start mysql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2012-12-13
    • 2019-11-18
    • 2020-09-29
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多