【发布时间】:2018-08-07 08:23:33
【问题描述】:
我不能再在我的 Docker 容器中使用 MySQL:
root@mysql-container:/# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
mysqld 正在运行:
root@mysql-spirit-ssl:/etc/mysql/conf.d# /etc/init.d/mysql start
[info] A MySQL Server is already started.
试图停止mysqld超时:
root@mysql-container:/# /etc/init.d/mysql stop
............................................................[info] Attempt to shutdown MySQL Community Server 5.7.17 timed out.
于是我尝试开始使用mysqladmin的方式:
root@mysql-container:/# /usr/bin/mysqladmin --port=8889 -u root shutdown
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)'
所以我检查了 MySQL 守护进程是否正在运行:
root@mysql-container:/# ps -eax
PID TTY STAT TIME COMMAND
1 ? Ssl 0:01 mysqld
并且那个套接字存在:
root@mysql-container:/# ls -l /var/run/mysqld/mysqld.sock
-rwxrwxrwx. 1 mysql mysql 0 Jan 4 10:12 /var/run/mysqld/mysqld.sock
我已经尝试过:
- 重启我的 Docker 容器
- 在 my.cnf 中注释绑定地址并重启我的 Docker 容器
- kill mysqld 进程 => 不起作用,进程仍由
ps -eax列出 - 重新创建我的 Docker 容器
- 重启 Docker
- 重启服务器
- 删除pid和sock文件,和
/etc/init.d/mysql start
猫/var/log/mysql/error.log的结果:
2018-02-27T15:27:35.966028Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2018-02-27T15:27:35.966061Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
但是我不能用pkill mysqld、kill -9 1或initctl --system stop mysql杀死那个mysqld进程。
这可能与 Docker 有关吗?
【问题讨论】:
标签: mysql sockets docker process