linux上用docker安装mysql,领略到了docker的魅力

背景

以前我在自己买的腾讯云的服务器上安装mysql很麻烦,要创建很多目录,执行很多命令,而且很容易出错,出错了之后要去各种百度谷歌解决问题,花费很多的时间。有兴趣可以看看我之前的文章,怎么在linux上安装mysql

现在使用虚拟化技术docker,我们可以很容易安装mysql。下面我们开始行动起来吧。

安装docker

  1. yum install -y yum-utils device-mapper-persistent-data lvm2
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. yum clean all
  4. yum makecache fast
  5. yum -y install docker-ce(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)
  6. systemctl start docker(启动docker)
  7. docker version( 查看安装的docker版本)
    在这里插入图片描述

安装mysql

  1. 先运行命令:docker volume create mysql_data 创建数据挂载点(即存储数据的地方,这样即便mysql容器删除了,数据还是在)

  2. 搜索mysql镜像 docker search mysql
    在这里插入图片描述

  3. 拉取镜像 docker pull mysql:latest

  4. 查看本地镜像 docker images
    在这里插入图片描述

5.创建配置文件存放位置 和数据映射位置
mkdir -p /mysql/config /mysql/data

6 创建编辑配置文件

vi /mysql/config/my.conf
my.conf配置文件内容如下
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

运行命令:
docker run -d -p 3306:3306 --restart always --privileged=true --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql

-d 后台运行容器
-p 3306:3306 指定端口映射(主机(宿主)端口:容器端口)
–restart=always 开机启动
–privileged=true 提升容器内权限
–name 为容器指定一个名称
-e 设置环境变量
MYSQL_ROOT_PASSWORD=123456 初始密码
-v /mysql/config/my.conf:/etc/my.cof 映射配置文件
-v=/mysql/data:/var/lib/mysql 映射数据目录
mysql 镜像名称

7 查看容器 docker ps
在这里插入图片描述

解决caching_sha2_password问题

这是我们用小海豚连接下mysql8,你可能会遇到这样的错误:
plugin ‘caching_sha2_password’ cannot be loaded:
这是因为caching_sha2_password的验证方式不支持想是navicate和sqlyog等客户端,我们需要更改验证方式
docker exec -it mysql-test bash
在这里插入图片描述

mysql -u root -p

在这里插入图片描述
use mysql;
在这里插入图片描述
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;
在这里插入图片描述
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
在这里插入图片描述
这是我们可以看到最后那条user是root的记录的plugin改了但是第一条没改,好多教程说到这儿就没了,但是还是连不上,必须把root的验证方式都改成,
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
在这里插入图片描述
当然最后还要记得 FLUSH PRIVILEGES;
在这里插入图片描述
再次连接远程数据库,连接成功:
在这里插入图片描述

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

ALTER USER ‘root’@’%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值