求教 Docker Componse 部署 mysql 配置默认密码失效 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cMoon
V2EX    程序员

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

  •  
  •   cMoon 2023-02-01 13:57:00 +08:00 3125 次点击
    这是一个创建于 985 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想自己搭一个博客( 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: 
    34 条回复    2023-02-05 22:32:20 +08:00
    cMoon
        1
    cMoon  
    OP
       2023-02-01 14:01:10 +08:00
    容器内也无法登录,修改密码没用
    Still4
        2
    Still4  
       2023-02-01 14:36:38 +08:00
    MYSQL_ROOT_HOST=%
    加上这个试试
    cMoon
        3
    cMoon  
    OP
       2023-02-01 14:49:54 +08:00
    @Still4 还是登不上
    wdssmq
        4
    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
        5
    1120101929  
       2023-02-01 15:13:10 +08:00
    --spring.r2dbc.password= halodb

    password 多了空格?
    xuyang2
        6
    xuyang2  
       2023-02-01 15:17:25 +08:00
    MySQL 报错难道就给你报个 "Access denied" ?
    Access denied **for whom** ?
    TiDao
        7
    TiDao  
       2023-02-01 15:25:03 +08:00
    1 docker ps 确认 halodb 是 running 的状态;
    cMoon
        8
    cMoon  
    OP
       2023-02-01 15:29:41 +08:00
    @wdssmq
    @1120101929 确实是多了个空格,但问题应该是出在下面 halodb 的配置,我容器内都登录不了
    TiDao
        9
    TiDao  
       2023-02-01 15:30:11 +08:00
    1 docker ps 确认 halodb 是 running 的状态;2 用 root 账号看能不能登录再容器外部登录,不能登录需要进入 halodb 容器里给 root 远程登录权限;
    cMoon
        10
    cMoon  
    OP
       2023-02-01 15:31:49 +08:00
    @1120101929 access denied for user ‘root‘@
    @TiDao 确认过了 db 是正常启动了
    cMoon
        11
    cMoon  
    OP
       2023-02-01 15:33:47 +08:00
    @TiDao 我容器内部登录都进不去,配置文件加了 skip-grant-tables 可以进去,但是改完密码重启容器又是 access denied for user 了
    TiDao
        12
    TiDao  
       2023-02-01 15:38:17 +08:00
    @cMoon MYSQL_ROOT_PASSWORD: halodb 这是 root 的密码,你使用的是这个密码吗? mysql -uroot -p 进 db 容器里,用这个命令登录
    xuyang2
        13
    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
        14
    gumuxi  
       2023-02-01 15:48:31 +08:00
    cMoon
        15
    cMoon  
    OP
       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
        16
    cMoon  
    OP
       2023-02-01 15:57:13 +08:00
    @xuyang2 我刚查了 user 表,发现问题了
    cMoon
        17
    cMoon  
    OP
       2023-02-01 15:58:12 +08:00
    @xuyang2
    @TiDao 存的密码是要自己先 md5 加密一下是吧
    xuyang2
        18
    xuyang2  
       2023-02-01 15:59:14 +08:00
    environment 的格式
    应该是 list 而不是 dict 吧
    cMoon
        19
    cMoon  
    OP
       2023-02-01 16:01:37 +08:00
    @xuyang2 应该都可以,我后面是按照 dockerhub 上 mysql 提供的格式改的
    cMoon
        20
    cMoon  
    OP
       2023-02-01 16:06:25 +08:00
    @cMoon 不是这个问题,裂开,搞了一天了
    xuyang2
        21
    xuyang2  
       2023-02-01 16:14:21 +08:00
    换个 MYSQL_USER 不要用 root 试试?
    cMoon
        22
    cMoon  
    OP
       2023-02-01 16:44:48 +08:00
    @xuyang2
    @TiDao 我把数据库挂载的配置删掉就没问题了
    joesonw
        23
    joesonw  
       2023-02-01 16:55:28 +08:00 via iPhone
    network 内端口用 3306
    moshiyeap100
        24
    moshiyeap100  
       2023-02-01 17:14:23 +08:00
    halo 的这个 docker-compose 配置最早应该是我写的,但是和我最初提的 pr 有些差异。不过你这个问题尝试下把整个 mysql 容器 rm 掉,然后删除 MYSQL 宿主机挂载的文件,然后重新创建一个 mysql 容器就好了。

    rm -rf ./mysql ./mysqlBackup ./mysqlConf
    moshiyeap100
        25
    moshiyeap100  
       2023-02-01 17:20:59 +08:00
    而且 MYSQL_ROOT_PASSWORD: halodb 和 - MYSQL_ROOT_PASSWORD=o#DwN&JSa56 这两种写法是 Map syntax 和 Array syntax ,有些细微差异的

    environment defines environment variables set in the container. can use either an array or a map. Any boolean values; true, false, yes, no, SHOULD be enclosed in quotes to ensure they are not converted to True or False by the YAML parser.environment
    magewu1223ll
        26
    magewu1223ll  
       2023-02-01 17:23:45 +08:00
    我之前遇到过的是 host 配置 127.0.0.1 失败 要改成 0.0.0.0 才能访问,不过看样子跟楼主不是同一个问题
    moshiyeap100
        27
    moshiyeap100  
       2023-02-01 17:24:59 +08:00
    如果是 access denied for user ‘root‘@, 那就在 environment 中加一条 MYSQL_ROOT_HOST: '%'
    aichunya
        28
    aichunya  
       2023-02-01 17:28:31 +08:00
    - --default-authentication-plugin=mysql_native_password
    把这个删掉就好了
    liuxingdeyu
        29
    liuxingdeyu  
       2023-02-01 18:30:24 +08:00
    environment:
    - TZ=Asia/Shanghai
    - MYSQL_ROOT_PASSWORD=123456
    noparking188
        30
    noparking188  
       2023-02-01 22:30:24 +08:00
    spring.r2dbc.url=r2dbc:pool:mysql://xxx:3316/halo

    你这里是写的本机地址吧,是地址试一下给 MySQL root 加远程登录权限,或者试一下换成 halodb 的容器名称

    我遇到过类似问题,官方 MySQL 镜像默认配置没给 root 远程登录权限,还有一些其它坑,需要自己改配置
    noparking188
        31
    noparking188  
       2023-02-01 22:31:34 +08:00
    @noparking188 #30 27 楼老哥的方法
    dy0425
        32
    dy0425  
       2023-02-02 00:27:34 +08:00 via Android
    我上次腾讯云上的测试数据库默认端口弱密码,被勒索了,重新起个容器改了密码,死活登不上去,搞了半天发现原来弱密码还能进去,挂载的配置没删
    cMoon
        33
    cMoon  
    OP
       2023-02-02 08:47:09 +08:00
    @moshiyeap100 谢谢大佬,应该就是这个挂载的文件的问题.现在解决了
    muhahaha
        34
    muhahaha  
       2023-02-05 22:32:20 +08:00 via iPhone
    请问 Halo 这个博客好用吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1474 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:41 PVG 00:41 LAX 09:41 JFK 12:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86