繁体   English   中英

无法连接到mysql docker容器

[英]Unable to connect to mysql docker container

我有一个正在处理的Dockerfile,可以拉Mysql 5.6并对其进行配置(主要是使用bash和sql脚本)。 我能够构建和运行它,但是当我尝试连接到容器中的数据库时,总是得到:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我尝试使用以下方法访问mysql数据库:

mysql -u root -p

mysql -u root -h 127.0.0.1 -p

我已经尝试了所有可能想到的东西,并在互联网上查找了文章,但没有任何效果。 有人可以告诉我为什么吗? 这分别是我的Dockerfile和bash脚本:

FROM mysql:5.6

MAINTAINER Ryan K.
USER root

ADD mysqlAddUser.sh /tmp/
CMD ["/tmp/mysqlAddUser.sh"]
ADD foo.sql /docker-entrypoint-initdb.d/foo.sql

EXPOSE 3306

## Starting mysqld and running Database Scripts
CMD ["/usr/bin/mysqld_safe"]

Bash脚本:

#!/bin/bash
DATABASE_PASSWORD=test

/usr/bin/mysqld_safe &
mysqladmin --login-path=local -uroot -p"$DATABASE_PASSWORD"
mysqladmin password "$DATABASE_PASSWORD"

mysql -uroot -p"$DATABASE_PASSWORD" -e "UPDATE mysql.user SET Password=PASSWORD('$DATABASE_PASSWORD') WHERE User='root'"
mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.user WHERE User=''"
mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'"
mysql -uroot -p"$DATABASE_PASSWORD" -e "FLUSH PRIVILEGES"

DB_ROOT_PASS=TEST
DB=portal

mysql --login-path=local -uroot -p"$DB_ROOT_PASS"
mysql -uroot -p"$DATABASE_PASWORD" -e "CREATE DATABASE portal";
mysql -uroot -p"$DATABASE_PASSWORD" -e "CREATE USER portaluser@'localhost' IDENTIFIED BY 'testing'";
mysql -uroot -p"$DATABASE_PASSWORD" -e "GRANT ALL PRIVILEGES ON portal.* TO portaluser@'localhost'";
mysql -uroot -p"$DATABASE_PASSWORD" -e "FLUSH PRIVILEGES";

mysql -uroot -p"$DATABASE_PASSWORD" $DB < /tmp/foo.sql

在docker容器中与mysql一起遇到同样的问题。 有时我可以连接mysql客户端,但更多时候不能。 切换到mariadb并遇到相同的问题。

对我来说,解决此问题的方法是在我的脚本中添加一些sleep命令,这些命令创建,启动和销毁Docker容器。 在执行诸如“ docker run”和“ docker stop”之类的命令之后,我添加了“ sleep 10”,这似乎有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM