欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

Docker安装 mysql

  |   0 评论   |   0 浏览

MYSQL5.X

# 安装mysql:5.7,直接docker run 他会自动去官方镜想下载
# MYSQL_ROOT_PASSWORD=[的数据库密码,此处写的是123456
# -d 表示容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看);使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。
docker run --name mysql5.7 -p 主机端口号:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库
# 进入容器mysql
docker exec -it mysql5.7 bash

# 进入数据库 p后面跟你的密码
mysql -uroot -p123456

# 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 出现Query OK, 1 row affected (0.00 sec)表示成功
#退出数据库
exit
#退出容器
exit

MYSQL8.X

1.查找镜像:

docker search mysql

也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/

2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):

docker pull mysql

3.通过镜像创建容器并运行:

docker run -p 10001:3306 --name mysql8.0.25 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker run -p 3333:3306 --name 容器名称 -e MYSQL_ROOT_PASSWORD=登陆密码 -d 镜像名称
  • -p 10001:3306:将容器的 3306 端口映射到主机的 10001 端口。
  • -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
  • -d 表示容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看);使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。

此时,用navicat for mysql连接mysql发现报错:Client does not support authentication protocol requested by server。。。

解决方案:

进入容器:

docker exec -it 62349aa31687 /bin/bash
或者使用容器名字
docker exec -it mysql8.0.0 /bin/bash

进入mysql:

mysql -uroot -p

添加用户

CREATE USER '用户名' IDENTIFIED BY '密码';

授权:

mysql> GRANT ALL ON *.* TO 'root'@'%';

刷新权限:

mysql> flush privileges;

更新加密规则:

mysql> ALTER USER 'root'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;

更新root用户密码:

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

刷新权限:

mysql> flush privileges;

4.修改配置文件

安装 vim 编辑器

apt-get update

apt-get install vim

进入配置文件

vi /etc/mysql/my.cnf

修改配置文件

# 设置 mysql8.0+ 的 group by 必须全字段问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 时区差距 8 小时问题
default-time_zone = '+8:00'

标题:Docker安装 mysql
作者:mmzsblog
地址:https://www.mmzsblog.cn/articles/2022/10/17/1665970590652.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道