docker版MySQL5.7重置root密码并授权localhost访问

启动docker版mysql5.7后,容器输出日志一直报错如下:

[Note] Access denied for user 'root'@'localhost' (using password: NO)

通常第一次启动mysql时,会生成随机密码,这里我就不管有没有密码,以及是哪个密码,直接重置root密码。

一、重置mysql root密码

  1. 确定mysql读取了哪个配置文件,通常读取配置文件的顺序是:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

后面的配置文件会覆盖前面的配置文件(如果有的话),先进入容器:

docker exec -it mysql /bin/bash

# 查看上面的几个配置文件是否存在,实际上只有第一个配置文件存在
ls /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
  1. 设置跳过密码验证
    按ctrl+d退出容器,复制配置文件并修改:
docker cp mysql:/etc/my.cnf ~/mysql.cnf

# 在[mysqld]下面添加一行内容:
# skip-grant-tables
vim ~/mysql.cnf

# 把文件拷贝回去,并进入容器查看是否添加成功
docker cp ~/mysql.cnf mysql:/etc/my.cnf
docker exec -it mysql /bin/bash
cat /etc/my.cnf | grep skip-grant-tables
  1. 重启mysql容器并重置密码
# ctrl+d退出容器
docker restart mysql

# 进入容器设置新密码
docker exec -it mysql /bin/bash
mysql -uroot

# 修改root密码
# 如果修改过程中报错,先退出mysql、退出容器,然后重启mysql:docker restart mysql,再重新进入容器
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 创建用户并授权访问
mysql> CREATE USER 'nacos'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nacos'@'localhost';
mysql> flush privileges;
  1. 去掉skip-grant-tables
# 退出mysql和容器
mysql> exit
exit

vim ~/mysql.cnf
# 注释掉skip-grant-tables

# 拷贝回去 并重启mysql容器
docker cp ~/mysql.cnf mysql:/etc/my.cnf
docker restart mysql

二、测试mysql连接

进入容器并执行如下命令:

docker exec -it mysql /bin/bash

# 登录mysql
mysql -uroot -p
Enter password:  <-- 输入root密码

相关推荐

  1. dockerMySQL5.7root密码授权localhost访问

    2024-05-16 06:10:03       28 阅读
  2. Linux系统MySQLroot密码

    2024-05-16 06:10:03       43 阅读
  3. MYSQL 5.7root密码

    2024-05-16 06:10:03       30 阅读
  4. windowsmysql root密码

    2024-05-16 06:10:03       39 阅读
  5. gitlab root密码

    2024-05-16 06:10:03       42 阅读
  6. 忘记密码mysql 8.2root密码|macos+linux

    2024-05-16 06:10:03       56 阅读
  7. Linux系统中MYSQL密码(针对root忘记密码)

    2024-05-16 06:10:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 06:10:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 06:10:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 06:10:03       87 阅读
  4. Python语言-面向对象

    2024-05-16 06:10:03       96 阅读

热门阅读

  1. Qt初识

    Qt初识

    2024-05-16 06:10:03      29 阅读
  2. 时间格式数据向前或向后归于整时

    2024-05-16 06:10:03       30 阅读
  3. Zookeeper笔记,MIT6.824

    2024-05-16 06:10:03       37 阅读
  4. Go 语言将 PDF 转为 Word 如何处理

    2024-05-16 06:10:03       38 阅读
  5. hashmap数据结构为什么是链表

    2024-05-16 06:10:03       39 阅读
  6. 2.go语言初始(二)

    2024-05-16 06:10:03       28 阅读