在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 作为我的开发服务器。稍后我将在上面做更多的文件。我希望您对此有所帮助,并感谢您的阅读。