Docker 搭建 Mysql 8

2021年6月30日
  1. docker pull mysql

运行 Mysql8 镜像生成容器

  1. docker run \
  2. -p 23306:3306 \
  3. -e MYSQL_ROOT_PASSWORD=localDocker@mysql \
  4. -v /home/docker/mysql/data:/var/lib/mysql:rw \
  5. -v /home/docker/mysql/log:/var/log/mysql:rw \
  6. -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw \
  7. -v /home/docker/mysql/mysql-files:/var/lib/mysql-files/ \
  8. --name mysql \
  9. --restart=always \
  10. -d mysql
  11. #####
  12. docker run -p 0.0.0.0:1048:22 -p 0.0.0.0:6666:3306 -e MYSQL_ROOT_PASSWORD=localDocker@mysql --name Mysql-new --restart=always -d mysql

使用命令 docker exec -it mysql /bin/bash 进入容器 使用命令 mysql -uroot -p 按下 enter 再按 enter 直接登录到 Mysql 里面去,因为里面 root 用户对应的密码是空的 给 root 用户设置密码 # 修改用户对应的密码

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

# 刷新权限

  1. flush privileges;

需要远程连接时,执行如下命令

  1. CREATE USER 'root'@'%' IDENTIFIED BY '用户密码';
  2. flush privileges;

创建出来的用户是没有任何创建数据库权限的,需要执行如下命令进行授权

  1. grant all privileges on *.* to 'root'@'%' with grant option;
  2. flush privileges;

在执行生成 mysql 容器的时候,我们设置了 mysql 初始密码的,使用那个密码,即可直接登录到 mysql

  1. [mysqld]
  2. # 禁止表名大小写验证
  3. lower_case_table_names=1
  4. # 禁用dns解析,所以在mysql的授权表中就不能使用主机名了,只能使用IP
  5. skip-name-resolve
  6. # mysql8的安全机制升级而需要修改的配置,不配置的话将无法登录管理
  7. default_authentication_plugin= mysql_native_password

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注