我是 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/