Docker MySQL:创建新用户

num*_*web 4 php mysql virtual-machine docker

mysql docker hub 页面中,有关于如何创建用户的参考:

MYSQL_USER, MYSQL_PASSWORD
Run Code Online (Sandbox Code Playgroud)

但是如何在 docker-compose.yml 文件中指定这些参数呢?

到目前为止,我有:

mysql:
  image: mysql:5.7
  ports:
    - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: R00t+
Run Code Online (Sandbox Code Playgroud)

另一个问题; 如何从容器外部连接到 mysql 主机?在容器内,我可以使用以下方法进行连接:

$user = 'root';
$pass = 'R00t+';
$server = 'mysql';

$dbh = new PDO( "mysql:host=$server", $user, $pass );
Run Code Online (Sandbox Code Playgroud)

nos*_*por 10

关于密码,您设置的所有参数与设置 root 密码完全相同,即:

mysql:
  image: mysql:5.7
  ports:
    - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: R00t+
    MYSQL_USER: youruser
    MYSQL_PASSWORD: yourpassword
Run Code Online (Sandbox Code Playgroud)

像主机使用一样与容器外部的 mysql 连接,localhost因为您在此行中将端口从容器重定向到主机- "3306:3306"

$user = 'root';
$pass = 'R00t+';
$server = 'localhost';

$dbh = new PDO( "mysql:host=$server", $user, $pass );
Run Code Online (Sandbox Code Playgroud)

我假设您在启动了 docker 容器的笔记本电脑上运行它。