docker中安装MySQL图文教程(详细)


docker的官网镜像仓库(可以理解maven的仓库):https://hub.docker.com/

需要啥就搜啥

<img src="Linux安装服务图文教程/在这里插入图片描述

17.1、安装MySQL8.0

第一步、从官网下载8.0的镜像

在这里插入图片描述

docker pull mysql:8.0

第二步、查看docker的所有镜像

docker images;

第三步、安装镜像,也可以理解启动容器,

  • 当然了,学了Java,我是这样去理解的。一个镜像可以实例化多个实例(容器)
  • 把镜像理解为类,当我new对象时,就会产生一个实例,如A a = new A();其中A为镜像,则a为容器(实例)
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0

sudo docker run -p 3306:3306 --name mysql \ —>配置端口映射,把docker中的MySQL端口3306,映射到Linux的端口3306,

-v /mydata/mysql/log:/var/log/mysql \ —> 新建文件夹/mydata/mysql/,对应映射的docker中的MySQL /var/log/mysql \

-e MYSQL_ROOT_PASSWORD=root \ —> 设置用户名和密码,

-d mysql:8.0 ---->docker的镜像的版本

在这里插入图片描述

第四步、查看docker正在运行的容器

docker ps   或者  docker ps  -a

第五步、使用navicate连接

很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin ‘caching_sha2_password’ cannot be loaded的错误。

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.

安装MySQL8.0 会发现以下问题:当我们使用navicate来连接Linux的docker里面的MySQL时,会出现连接不上。

在这里插入图片描述

  • 解决

解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.

docker exec -it mysql /bin/bash进入mysql容器.
在这里插入图片描述
再接着输入mysql -u root -p命令,然后输入自己的密码,最后输入以下命令

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;          #修改加密规则 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';     #更新一下用户的密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';             #修改root用户密码

FLUSH PRIVILEGES;   #刷新权限 

在这里插入图片描述

17.2、安装MySQL5.7

注意:

我是在已经安装MySQL的8.0前提下,继续安装mysql5.7,你们第一次安装,直接安装8.0或者5.7。作者是为了演示8.0与5.7的区别。

第一步,停止mysql8.0(第一次安装5.7的可忽略)

//  停止全部
docker stop $(docker ps -a -q)

// 停止一个容器
docker stop 容器进程Id/容器的名字
docker stop mysql

在这里插入图片描述

第二步,去官网下载5.7的版本

docker pull mysql:5.7

第三步,启动容器,配置映射信息

     sudo docker run -p 3306:3306 --name mysql_5.7 \
    -v /mydata_5.7/mysql/log:/var/log/mysql \
    -v /mydata_5.7/mysql/data:/var/lib/mysql \
    -v /mydata_5.7/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7

第四步,navicate访问即可

在这里插入图片描述

17.3、修改MySQL的编码格式

修改外部挂载的 Mysql 映射文件,同时docker内部的 MySql 也会生效。 主要修改MySql的字符编码。

第一步、进入挂载的mysql配置目录

cd /mydata/mysql/conf

第二步、进入之后 没有任何文件,我们可以编辑创建

vi my.cnf

输入以下内容:

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve

按: esc
:wq 保存退出

  • 可以使用 cat my.cnf 查看

在这里插入图片描述

第三步、docker重启mysql使配置生效,

docker restart mysql

第四步、进入docker 的 内部的MySql中查看

docker exec -it mysql /bin/bash

cd /etc/mysql

cat my.cnf

在这里插入图片描述

第五步、 退出 docker 内部mysql

 exit;
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值