求教 Docker Componse 部署 mysql 配置默认密码失效

2023-02-01 13:57:00 +08:00
 cMoon

想自己搭一个博客( halo

按照文档Halo Documents通过 docker componse 创建 Halo + MySQL 的实例。halo 启动报错,连接数据库 Access denied

参考https://blog.csdn.net/qq_36493719/article/details/104246271未解决

docker-componse.yml:

version: "3"

services:
  halo:
    image: halohub/halo:2.1.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo2
    ports:
      - 6666:8090
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://xxx:3316/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password= halodb
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://xxx/
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=admin
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=pwd@halo

  halodb:
    image: mysql:8.0.31
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    command:
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
      - ./mysqlConf/my.cnf:/etc/mysql/my.cnf
    ports:
      - 3316:3306
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      MYSQL_ROOT_PASSWORD: halodb
      TZ: Asia/Shanghai
      MYSQL_DATABASE: halo

networks:
  halo_network:
2282 次点击
所在节点    程序员
34 条回复
cMoon
2023-02-01 14:01:10 +08:00
容器内也无法登录,修改密码没用
Still4
2023-02-01 14:36:38 +08:00
MYSQL_ROOT_HOST=%
加上这个试试
cMoon
2023-02-01 14:49:54 +08:00
@Still4 还是登不上
wdssmq
2023-02-01 14:58:56 +08:00
- --spring.r2dbc.url=r2dbc:pool:mysql://xxx:3316/halo

↓ ↓

- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
1120101929
2023-02-01 15:13:10 +08:00
--spring.r2dbc.password= halodb

password 多了空格?
xuyang2
2023-02-01 15:17:25 +08:00
MySQL 报错难道就给你报个 "Access denied" ?
Access denied **for whom** ?
TiDao
2023-02-01 15:25:03 +08:00
1 docker ps 确认 halodb 是 running 的状态;
cMoon
2023-02-01 15:29:41 +08:00
@wdssmq
@1120101929 确实是多了个空格,但问题应该是出在下面 halodb 的配置,我容器内都登录不了
TiDao
2023-02-01 15:30:11 +08:00
1 docker ps 确认 halodb 是 running 的状态;2 用 root 账号看能不能登录再容器外部登录,不能登录需要进入 halodb 容器里给 root 远程登录权限;
cMoon
2023-02-01 15:31:49 +08:00
@1120101929 access denied for user ‘root‘@
@TiDao 确认过了 db 是正常启动了
cMoon
2023-02-01 15:33:47 +08:00
@TiDao 我容器内部登录都进不去,配置文件加了 skip-grant-tables 可以进去,但是改完密码重启容器又是 access denied for user 了
TiDao
2023-02-01 15:38:17 +08:00
@cMoon MYSQL_ROOT_PASSWORD: halodb 这是 root 的密码,你使用的是这个密码吗? mysql -uroot -p 进 db 容器里,用这个命令登录
xuyang2
2023-02-01 15:44:10 +08:00
https://github.com/halo-dev/docs/blob/main/docs/getting-started/install/docker-compose.md:

environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo

yours:

environment:
MYSQL_ROOT_PASSWORD: halodb
TZ: Asia/Shanghai
MYSQL_DATABASE: halo
gumuxi
2023-02-01 15:48:31 +08:00
cMoon
2023-02-01 15:55:56 +08:00
@TiDao 我查了 user 表的信息,
mysql> SELECT User, authentication_string, Host FROM user;
+------------------+------------------------------------------------------------------------+-----------+
| User | authentication_string | Host |
+------------------+------------------------------------------------------------------------+-----------+
| root | halodb | % |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| root | halodb | localhost |
+------------------+------------------------------------------------------------------------+-----------+
cMoon
2023-02-01 15:57:13 +08:00
@xuyang2 我刚查了 user 表,发现问题了😂
cMoon
2023-02-01 15:58:12 +08:00
@xuyang2
@TiDao 存的密码是要自己先 md5 加密一下是吧😂
xuyang2
2023-02-01 15:59:14 +08:00
environment 的格式
应该是 list 而不是 dict 吧
cMoon
2023-02-01 16:01:37 +08:00
@xuyang2 应该都可以,我后面是按照 dockerhub 上 mysql 提供的格式改的
cMoon
2023-02-01 16:06:25 +08:00
@cMoon 不是这个问题,裂开,搞了一天了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX