我正在使用撰写文件触发 mysql:
version: "3"
services:
my-sql:
image: mysql
container_name: my-sql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: passw0rd
MYSQL_USER: dbuser
MYSQL_PASSWORD: pass1234
MYSQL_DATABASE: connect_test
按以下方式查找容器的 IPAdress:
root@sevenos:~# docker inspect my-sql | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "172.18.0.2",
当我在容器外部连接my-sql client
时,出现如下错误:
root@sevenos:~# mysql -uroot -ppassw0rd -h 172.18.0.2 -P 3306
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be
loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
最佳答案
您可以使用以下命令初始化 docker 来加载默认身份验证插件:
mysql:
image: mysql
container_name: mysql
command: mysqld --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
volumes_from:
- mysql-data
ports:
- "3306:3306"
在运行它之前,您必须删除所有 mysql 卷:
docker-compose rm
docker volume rm list_of_your_volumes
docker-compose up
您可以查看更多详细信息:https://github.com/passbolt/passbolt_docker/issues/103
关于mysql - 从主机网络的sql-client连接到docker容器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50212786/