Windows 10上的Docker:使用自定义配置文件运行MySQL:8.0.30-Debian。
#mysql #docker #windows #置

在Windows 10上运行官方MySQL所需的步骤:8.0.30-debian Image带有自定义配置文件e:\ mysql-config \ mysql-docker.cnf。

我想使用我的自定义配置文件 e:\ mysql-config \ mysql-docker.cnf ,运行Docker Official Image mysql:8.0.30-debian ,在我的 Windows 10 Pro 机器上。我正在描述使此工作的步骤。

mysql-docker.cnf 是 * e:\ mysql-config *中的唯一文件。它的内容:

[mysqld]
default_authentication_plugin=mysql_native_password
log_bin_trust_function_creators=1

·对于此 mysql:8.0.30-debian 图像,自定义配置文件是 /etc/mysql/conf.d/mysql.d/mysql.cnf 。<<。 /p>

它的权限为:所有者具有 write ; 其他只有。我们自己的自定义配置文件必须具有相同的权限。

â× e:\ mysql-config \ mysql-docker.cnf 要更改其权限,我们只需要目录即可。 e:\ mysql-config **被翻译成** // e/mysql-config 。因此,安装选项是:

--mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d

运行的命令:

E:\>docker run -d -it --rm --name mysql-docker --mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pcb.2176310315865259 mysql:8.0.30-debian

在交互式模式下运行容器,并与bash进程更改配置文件权限:

E:\>docker exec -it mysql-docker bash

验证我们正在查看只有此配置文件的 Windows 10 Pro 目录,还请注意其权限:

root@5b671d85c90b:/# ls -l /etc/mysql/conf.d
total 4
-rwxrwxrwx 1 root root 95 Aug  8 11:41 mysql-docker.cnf

更改权限以匹配相应的容器自定义配置文件。也就是说,所有者具有写作; 其他只有

root@5b671d85c90b:/# cd /etc/mysql/conf.d/
root@5b671d85c90b:/# chmod u+rw-x mysql-docker.cnf
root@5b671d85c90b:/# chmod g+r-wx mysql-docker.cnf
root@5b671d85c90b:/# chmod o+r-wx mysql-docker.cnf

权限现在应该是正确的。验证:

root@5b671d85c90b:/# ls -l
total 4
-rw-r--r-- 1 root root 95 Aug  8 11:41 mysql-docker.cnf

â停止并重新运行以验证自定义配置文件会效果。这次,还以适当的数据持续卷运行,并带有选项:

--mount source=mysqlvol,target=/var/lib/mysql

停止容器并运行的命令为:

E:\>docker stop mysql-docker
E:\>docker run -d -it --rm --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pcb.2176310315865259 --mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d --mount source=mysqlvol,target=/var/lib/mysql mysql:8.0.30-debian

验证自定义配置生效。使用 mySQL命令行来查询自定义选项的值。运行交互式bash shell:

E:\>docker exec -it mysql-docker bash

启动 mySQL命令行

root@dfa641fecc0a:/# mysql -uroot -ppcb.2176310315865259

μ验证 default_authentication_plugin = mysql_native_password

mysql> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | mysql_native_password |
+-------------------------------+-----------------------+
1 row in set (0.01 sec)

¶验证 log_bin_trust_function_creators = 1 。请注意, 1 在上报告:

mysql> show variables like 'log_bin_trust_%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.00 sec)

»使用 Windows mysql客户端工具,我们还应该能够连接到 mysql 中的 mysql-docker 容器。例如:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql" --protocol=TCP --host=localhost --port=3306 --user=root --password=pcb.2176310315865259

由于 default_authentication_plugin 的值是 mysql_native_password ,我们应该成功登录。 IE。我们不应该得到错误:

错误2059(HY000):无法加载身份验证插件'caching_sha2_password':找不到指定的模块。

€â€

我花了一段时间才能解决这个问题...我记录了它,以便对其他人有帮助。实际上,我正在使用 mysql:8.0.30-debian 作为我的开发服务器。稍后我将在上面做更多的文件。我希望您对此有所帮助,并感谢您的阅读。