我需要运行 MySql docker 容器。按照 MySql 官方 Docker 存储库 ( https://hub.docker.com/_/mysql/ ) 上的说明,我执行了以下步骤:
第一步,我编写了如下的stack.yml文件,然后运行:docker-compose -f stack.yml up
version: '3.1'
services:
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
第 2 步。浏览到 http://localhost:8080/
显示登录表单。它说:
系统:MySql
服务器:db
然后我输入root 作为用户名和example 作为密码,并将数据库文本框留空,然后单击登录。 它显示错误: “SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法”
任何有关如何解决此问题的提示/线索将不胜感激。提前致谢!
=========
以下来自终端:
docker-compose -f stack.yml up
Starting hibernate_db_1 ... done
Starting hibernate_adminer_1 ... done
Attaching to hibernate_db_1, hibernate_adminer_1
db_1 | 2018-05-23T07:34:08.186378Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
db_1 | 2018-05-23T07:34:08.186678Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.11) starting as process 1
db_1 | mbind: Operation not permitted
db_1 | mbind: Operation not permitted
adminer_1 | PHP 7.2.5 Development Server started at Wed May 23 07:34:08 2018
db_1 | 2018-05-23T07:34:09.011741Z 0 [System] [MY-010229] [Server] Starting crash recovery...
db_1 | 2018-05-23T07:34:09.012443Z 0 [System] [MY-010232] [Server] Crash recovery finished.
db_1 | 2018-05-23T07:34:09.214122Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
db_1 | 2018-05-23T07:34:09.226905Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
db_1 | 2018-05-23T07:34:09.255716Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.infoschema@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.256491Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.256797Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.257188Z 0 [Warning] [MY-010315] [Server] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.257654Z 0 [Warning] [MY-010323] [Server] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.258015Z 0 [Warning] [MY-010323] [Server] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.258420Z 0 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.273119Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.273798Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1 | 2018-05-23T07:34:09.299367Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.11' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
当我浏览到 http://localhost:8080 ,终端打印:
adminer_1 | [Wed May 23 07:34:28 2018] ::ffff:172.18.0.1:35388 [200]: /
我点击登录后,终端打印:
adminer_1 | [Wed May 23 07:34:41 2018] ::ffff:172.18.0.1:35396 [302]: /
adminer_1 | [Wed May 23 07:34:41 2018] ::ffff:172.18.0.1:35398 [403]: /?server=db&username=root
最佳答案
管理员使用一些扩展与 mysql8 兼容,如管理员主页上的要求中可用。 https://www.adminer.org/
adminer with mysql 4.1, 5.0, 5.1, 5.5, 5.6, 5.7, 8.0 through extensions: mysql, mysqli, pdo_mysql
所以你可以恢复到 mysql-5.7
version: '3.1'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_USER: user
MYSQL_PASSWORD: pass
adminer:
image: adminer
restart: always
ports:
- 8080:8080
关于mysql - 使用 docker-compose 运行 MySql;登录错误 : "The server requested authentication method unknown to the client",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50481403/