mysql - Linux - Docker MySQL 镜像 - 创建 MYSQL_USER

标签 mysql linux image bash docker

我是 docker 容器的新手,我正在致力于自动化一些 MySQL 任务。通过使用 bash 脚本,我能够自动创建和转储数据库,但现在我正在尝试创建从命令行获取输入的新用户,但它不起作用。这是我的脚本:

sudo docker run -it --link testing1:mysql --rm mysql/mysql-server:5.7.11 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e"CREATE USER 'docker'@'%' IDENTIFIED BY 'tester'"'

我收到的错误信息是:

+ EXPECTED_ARGS=2
+ E_BADARGS=65
++ which mysql
+ MYSQL=/usr/bin/mysql

+ sudo docker run -it --link testing1:mysql --rm mysql/mysql-server:5.7.11 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"

-e"CREATE USER docker@% IDENTIFIED BY tester"'
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '% IDENTIFIED BY tester' at line 1

最佳答案

您需要将 %(以允许来自任何 ip 的连接)括在引号中。

创建用户 docker@'%' IDENTIFIED BY tester

关于mysql - Linux - Docker MySQL 镜像 - 创建 MYSQL_USER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36241184/

相关文章:

mysql - 如何从表中选择数据以转置或交叉表的方式输出?

php - 使用php在数据库中保存日期时出错

c# - C# 不同数据库的MySQL数据同步

linux - 通过 Google Colab 进行 x11 转发

android - 如何在 android 中调整图像大小以在扩展通知中使用它?

java - 规范 CriteriaBuilder 将 ZonedDateTime 转换为 LocalDate 以进行比较

linux - ERR背后的实际信号是什么

linux - select() api 返回正值但从串口读取时触发错误

image - 如何判断一个文件是否是 JVM 上的图像?

java - 使用 JSON 从 Tumblr 检索和显示图像