docker-Composer 的 MySQL 无法登陆但是 docker run 的又可以

这是我的docker-composer mysql 文件

 mysql:
    container_name: mysql5.7
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - /home/wwwconfig/mysql/data:/var/lib/mysql
      - /home/wwwlogs/mysql/logs:/logs
      - /home/wwwconfig/mysql/my.cnf:/etc/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: 123456

此时报错进入mysql容器执行 mysql -uroot -p123456

docker-composer 的mysql无法登陆但是docker run的又可以

这时我docker run 命令

docker run -d -p 3306:3306 –name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

此时将正常

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

问题解决: 在大佬回复下 首先 mysql data 目录里面有数据(不知道是不是以前下载弄的) 导致你设置的秘密无效清空后重新执行即可 其次如果是要 phpmyAdmin 允许远程连接可以 :

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;
--------------------+------+
| host               | user |
+--------------------+------+
| %                  | root |
| 127.0.0.1          | root |
| ::1                | root |
| localhost          |      |
| vm\_144\_7\_centos |      |
| vm\_144\_7\_centos | root |
+--------------------+------+

%符号是允许用户在任意主机登陆

3年前 评论
讨论数量: 4

我看你的 volumes 配置了 数据库的存储目录,然后我了解了下,如果你是映射了一个原有的数据库,这个环境变量配置的密码,是不起作用的。只有新建数据库才行。

参考:github.com/docker-library/mysql/is...

可以试试

3年前 评论

@largezhou 这是新的数据库只是我把data目录映射出来而以

3年前 评论

检查下 host 跟 密码

3年前 评论

问题解决: 在大佬回复下 首先 mysql data 目录里面有数据(不知道是不是以前下载弄的) 导致你设置的秘密无效清空后重新执行即可 其次如果是要 phpmyAdmin 允许远程连接可以 :

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;
--------------------+------+
| host               | user |
+--------------------+------+
| %                  | root |
| 127.0.0.1          | root |
| ::1                | root |
| localhost          |      |
| vm\_144\_7\_centos |      |
| vm\_144\_7\_centos | root |
+--------------------+------+

%符号是允许用户在任意主机登陆

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!