cloudiac icon indicating copy to clipboard operation
cloudiac copied to clipboard

[QUESTION]

Open pythonyaole opened this issue 2 years ago • 1 comments

请描述您的问题

time="2022-08-03T13:49:13.481" level=info msg="/Users/xiaohei/xiaohei/cloudiac/portal/libs/db/mysql_gorm.go:461\n[error] failed to initialize database, got error Error 1045: Access denied for user 'cloudiac'@'172.19.0.4' (using password: YES)"

pythonyaole avatar Aug 03 '22 05:08 pythonyaole

hi pythonyaoley,.env 中配置的 MYSQL_PASSWORD 只在应用初始启动时会进行设置,后面再修改不会影响己创建过的数据。你是否在初始启动后重新修改过 MYSQL_PASSWORD?

如果需要修改密码可以选择⚠️删除数据⚠️重新初始化:

rm -rf /usr/yunji/cloudiac/var && mkdir -p /usr/yunji/cloudiac/var/{consul,mysql} && cd /usr/yunji/cloudiac/

或者通过手动修改 mysql 密码

  1. 停用 mysql server 认证 修改 docker-compose.yml,在 mysql 的启动命令中增加 --skip-grant-tables 参数 vim docker-compose.yml:
  mysql:
    container_name: mysql
    image: "mysql:8.0"
    command: [
        "--character-set-server=utf8mb4",
        "--collation-server=utf8mb4_unicode_ci",
        "--skip-grant-tables", # mysql server 停用认证
        "--sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
    ]
  1. 重启 mysql
docker-compose up -d --force-recreate mysql
  1. 重置 mysql user 密码
source .env && docker-compose exec mysql mysql -uroot -e "flush privileges; ALTER USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'"
  1. 重新开启 mysql server 认证 编辑 docker-compose.yml,将 --skip-grant-tables 参数从 mysql 启动命令中删除

  2. 重启所有服务

docker-compose up -d --force-recreate

重启后检查日志,确认 mysql 连接正常。

jxinging avatar Aug 05 '22 17:08 jxinging