Docker安装MySql8

1,安装Docker

yum install -y docker
yum list installed | grep docker

注:-y表示不再询问,使用默认配置进行安装。

配置docker加速器

1. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2. 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://ht4d19n9.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

2. 启动Docker服务

systemctl start docker
systemctl status docker
docker images

3. 使用Docker安装MySQL

docker pull mysql:8.0

注:docker pull 默认到官方参考拉取 mysql:8.0 镜像名:镜像tag,官方地址为国外地址,下载速度缓慢可进行配置。

vi /etc/docker/daemon.json

注:insert编辑内容如下所示,并以wq保存并退出。

{ "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] }

修改完毕后重启Docker服务。

systemctl restart docker
docker images

4. 启动MySQL镜像(创建数据库实例)

docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0  --lower_case_table_names=1

注:
• –name 为服务启动别名设置
• -p 端口映射 宿主机端口:镜像运行端口
• -d 镜像名:tag 使用守护进程模式启动
• -e 设置root账号密码
• --lower_case_table_names=1  0:区分大小写,1:不区分大小写
 docker ps -a

5. 进入镜像运行MySQL

docker exec -it mysql8.0 /bin/bash
cd /usr/bin
/usr/bin# mysql -u root -p
show variables like "%case%";

注:exec docker进入容器命令 -it 容器中服务别名 /bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式

*****************************************************************************************

此时你还无法使用工具访问MySql,会提示2003错误;因为MySQL默认是不能进行远程访问的,需要我们去设置,操作如下:

mysql -u root -p;
use mysql;
update user set host='%' where user='root';
授权MySql远程访问;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

现在我们尝试使用工具去连接MySql还是会提示2003错误;各种百度后发现是阿里云安全规则限 制;

修改阿里云的安全规则,开放3306端口;

再次尝试连接发现提示2058错误,上面已经说了,MySql 8.0 以后修改了密码规则;所以我们得修改一下规则;

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

你的密码指的是你重新设置的密码,一定要符合MySql 8.0的密码要求;否则会设置失败;

刷新下权限

alter user 'root'@'%'  identified by 'root123' password expire never;
alter user 'root'@'%'  identified with mysql_native_password by 'root123';
FLUSH PRIVILEGES;

**********************************************************************************************

使用命令开启CentOS的防火墙;

systemctl start firewalld.service

查看3306端口是否放行(yes表示放行,no表示不允许)

firewall-cmd --query-port=3306/tcp

开放MySql 3306端口;

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启firewall

systemctl restart firewalld.service

设置自启动

docker update --restart=always 容器id

将MySql服务加入到开机启动项,并重启MySql服务;

systemctl enable mysqld.service
systemctl restart mysqld.service

至此Doker中安装使用MySQL 8.0完成。

6. 其他命令

# 删除安装包
yum remove -y 安装包名
# 停止/开始服务
systemctl start docker
systemctl stop docker
# 移除已经安装的镜像
docker rmi 镜像名:tag or 镜像id
# 停止/启动/删除容器服务
docker stop 容器服务别名  or 容器id
docker start 容器服务别名  or 容器id
docker rm 容器服务别名  or 容器id

你可能感兴趣的:(docker)