我在使用 mysql/mysql-server docker 映像时遇到问题。我想连接到 mysql 服务器,创建数据库,拥有所有特权的用户,以便将来能够创建新模式并运行 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
Run Code Online (Sandbox Code Playgroud)
当我这样做时,docker ps我看到它正在运行,但是当我尝试运行 liquibase(使用 root/qwe123)时,它失败了:
[错误] 无法执行目标 org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli) on project db: null,来自服务器的消息:“Host '172.17.0.1' is not allowed to connect to此 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
Run Code Online (Sandbox Code Playgroud)
管理员用户在创建新架构时出错,看起来管理员只能访问测试数据库:
[错误] 无法在项目 db 上执行目标 org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli): Access denied for user …