Docker 容器启动后 MySQL 服务器无法连接

Docker 容器启动后 MySQL 服务器无法连接

在装有 MySQL 8 的 Ubuntu 22.04 系统上工作。我在外部硬盘上有一个 MySQL 数据/db 的旧集合,我使用 Docker 容器和 MySQL 映像连接并导出它。这工作正常,但是当我尝试通过命令行连接到我现有的 MySQL 安装时,尽管服务器通过显示为“活动”,但我还是收到以下错误systemctl

chris@chris-X1C6:~$ mysql -u admin -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我在谷歌上搜索了一下,找到了很少(和) 补救措施,但都无法解决问题。系统重启也无法解决问题。

作为第一次常识检查,我没有在引用的位置看到 mysql sock 文件,但在目录中/tmp看到了一个 ( ) 。我也没有在 mysql 目录中看到要检查的 .cnf 文件 ( )。mysqld.sock/var/run/mysqld/var/lib/mysql

我还应该关注什么?

答案1

文档中提到,服务器用于与本地客户端通信的 Unix 套接字文件的默认位置是/tmp/mysql.sock。 (对于某些分发格式,目录可能会有所不同,例如/var/lib/mysqlRPM。)


尝试此处的故障排除步骤:https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html

  • 在全局或本地选项文件中指定路径。例如,输入以下一行或两行来/etc/my.cnf设置服务器端或客户端路径:
[mysqld]
socket=/path/to/socket

[client]
socket=/path/to/socket
  • --socket在命令行上为 mysql 客户端指定一个选项,例如mysqlmysqladmin --socket=/path/to/socket
  • 将环境变量设置MYSQL_UNIX_PORT为 Unix 套接字文件的路径。

您可以尝试用以下命令连接服务器来测试新的套接字位置是否有效:

$> mysqladmin --socket=/path/to/socket version

相关内容