docker

该博客详细介绍了如何在CentOS7系统中离线和在线安装Docker,包括启动、停止、重启和设置开机自启等操作。此外,还讲解了如何配置Docker的镜像加速,以及如何使用Docker安装并运行MySQL,包括设置root密码、数据持久化和解决连接错误。最后,针对特定的MySQL连接错误提供了解决方案,涉及用户加密方式的更改。
摘要由CSDN通过智能技术生成

centos7 安装docker

离线安装包

下载离线安装包

https://download.csdn.net/download/weixin_38305440/12265961

上传离线安装包

  • docker-install 目录上传到/root

切换到docker-install目录

cd docker-install

安装

rpm -ivh *.rpm

在线安装docker

安装

yum -y install docker

docker 命令

启动

systemctl start docker

重启

systemctl restart docker

停止

systemctl stop docker

开机自启

systemctl enable docker

前面有坑—如果你在docker运行期间操作了防火墙启动或关闭必须重启

systemctl restart docker

docker镜像加速

修改配置文件 /etc/docker/daemon.json
拷贝下面的内容/etc/docker/daemon.json中

{ "registry-mirrors": ["https://32xw0apq.mirror.aliyuncs.com"] }

使配置文件生效

systemctl daemon-reload 

重启docker

systemctl restart docker

docker 安装mysql

查看mysql可用版本

docker search mysql

拉取MySQL 镜像

这里拉取官方的最新版本的镜像:

docker pull mysql:latest

在这里插入图片描述

查看本地镜像

使用以下命令来查看是否已安装了mysql

docker images

在这里插入图片描述

运行容器

安装完成后,我们可以使用以下命令来运行mysql容器

docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

参数说明:

  • run run 是运行一个容器
  • -d  表示后台运行
  • -p  表示容器内部端口和服务器端口映射关联
  • –privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
  • -v /docker/mysql/conf/my.cnf:/etc/my.cnf 将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
  • -v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
  • -e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
  • –name mysql     设值容器名称为mysql
  • mysql:latest  表示从docker镜像mysql:latest中启动一个容器
  • –character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码

本地连接mysql

先进入容器

docker exec -it mysql bash

执行mysql命令,输入root密码,连接mysql

mysql -uroot -p

远程连接mysql

配置linux数据库权限

进入容器数据库后

切换数据库mysql

在这里插入图片描述

切换mysql 数据库
在这里插入图片描述

修改数据库表
  1. 检查数据表
    在这里插入图片描述

  2. 查询user表中的host/root
    在这里插入图片描述

  3. 将host=“localhost” 改为"%"

update user set host="%" where host="locahost";
  1. 刷新数据库权限
flush privileges;

问题

说明:如果创建mysql的数据库连接报如下错误:2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded:
在这里插入图片描述
从错误信息可知caching_sha2_password不能加载。

以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

大安装Mysql数据库的主机上登录Mysql对应的用户,上面连接时用的用户为root,所以我们登录root用户。

解决

执行命令

  1. 进入容器数据库,后进入mysql数据库
use mysql 
select user,plugin from user where user='root';

可以看到当前用户的加密方式为caching_sha2_password
执行命令

alter user 'root'@'%' identified with mysql_native_password by 'Admin@123';

将用户的加密方式改为mysql_native_password。
参数说明:

  • ’ root’@’%’ :user表的user字段和host字段
  • ‘Admin@123’ :数据库连接密码

执行命令flush privileges使权限配置项立即生效。
再次尝试连接Mysql,连接成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值