无法连接到MySQL泊坞窗图像

我有问题使用mysql / mysql-server泊坞窗图像。 我想连接到MySQL服务器,创build数据库,用户与所有特权有能力创build新的架构,并在未来运行liquibase。

我运行这样的容器:

sudo docker run --name db -e MYSQL_ROOT_PASSWORD=qwe123 -e MYSQL_DATABASE=test \ -d -p 3306:3306 mysql/mysql-server:5.6 --lower-case-table-names=1 

当我做docker ps我发现它正在运行,但是当我试图运行liquibase(使用root / qwe123)时,它失败了:

[错误]无法执行目标org.codehaus.mojo:sql-maven-plugin:1.5:对项目db:null执行(default-cli),来自服务器的消息:“主机172.17.0.1”不允许连接到这个MySQL服务器“ – > [帮助1]

尝试与用户:

 sudo docker run --name db -e MYSQL_ROOT_PASSWORD=qwe123 -e MYSQL_DATABASE=test \ -e MYSQL_USER=admin -e MYSQL_PASSWORD=qwe123 -d -p 3306:3306 \ mysql/mysql-server:5.6 --lower_case_table_names=1 

与pipe理员用户有错误创build新的架构,它看起来像pipe理员只有访问testing数据库:

[错误]无法执行目标org.codehaus.mojo:sql-maven-plugin:1.5:执行(默认 – cli)上的项目数据库:访问被拒绝用户'admin'@'%'到数据库'test2' – > [帮助1]

与根以下错误:

[错误]成功发送到服务器的最后一个数据包是0毫秒前。 驱动程序尚未收到来自服务器的任何数据包。 无法读取服务器的响应。 预期读取4个字节,在连接意外丢失之前读取0个字节。

还尝试在init命令中为admin设置权限:

 docker run --name db -e MYSQL_ROOT_PASSWORD=qwe123 -e MYSQL_DATABASE=test -d \ -p 3306:3306 mysql/mysql-server:5.6 --lower_case_table_names=1 \ '--init-connect=CREATE USER `admin`@`localhost` IDENTIFIED BY "qwe123"; GRANT ALL PRIVILEGES ON *.* TO `admin`@`localhost` WITH GRANT OPTION; CREATE USER `admin`@`%` IDENTIFIED BY "qwe123";GRANT ALL PRIVILEGES ON *.* TO `admin`@`%` WITH GRANT OPTION;FLUSH PRIVILEGES;' 

在这种情况下,对于root用户有错误:

[错误]无法执行目标org.codehaus.mojo:sql-maven-plugin:1.5:对项目db:null执行(default-cli),来自服务器的消息:“主机172.17.0.1”不允许连接到这个MySQL服务器“ – > [帮助1]

为pipe理员 – 以下内容:

12:13:57 [错误]成功发送到服务器的最后一个数据包是0毫秒前。 驱动程序尚未收到来自服务器的任何数据包。 无法读取服务器的响应。 预期读取4个字节,在连接意外丢失之前读取0个字节。

还尝试使用本地主机和127.0.0.1作为主机数据库,总是有连接错误。 有任何想法吗?

您应该允许MySQL内的用户从主机的IP连接。 在MySQL中更改用户之后,不要忘记刷新权限

GRANT CREATE USER ON *.* TO 'root'@'%';

并重新启动mysql实例

也有机会通过my.cnf将mysql绑定到127.0.0.1。 如果是这样 – 将绑定更改为0.0.0.0以通过任何IP访问它