Centos7使用docker部署mysql5.7

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

一.拉取MySQL5.7镜像

docker pull mysql:5.7

在这里插入图片描述

二.创建MySQL安装目录

mkdir /usr/local/mydata/mysql/log
mkdir /usr/local/mydata/mysql/data
mkdir /usr/local/mydata/mysql/conf

三.使用自定义的 custom.cnf 配置文件

1.创建custom.cnf文件
vim /usr/local/mydata/mysql/conf/custom.cnf
2.创建custom.cnf文件
[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

四.创建容器

docker run --name mysql -v /usr/local/mydata/mysql/log:/var/log/mysql -v /usr/local/mydata/mysql/data:/var/lib/mysql -v /usr/local/mydata/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

五.修改配置

1.进入容器
docker exec -it mysql bash
2.进入mysql服务
mysql -u root -p
3.修改密码(可能会有密码格式校验简单密码会提示错误)
1.ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
2.FLUSH PRIVILEGES;
4.允许外网访问
1.grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
2.FLUSH PRIVILEGES;

六.NAVICAT远程测试连接

注意如果是云服务器例如阿里云、腾讯云、华为云等要先配置安全组将端口开放才可以。或者启用了防火墙也要开启端口。
在这里插入图片描述

六.服务器连接

如果是同服务器应用容器连接mysql数据库,比如nacos服务,不要使用localhost或者127.0.0.1作为连接IP,在Docker中,127.0.0.1或localhost指的是当前容器,而不是宿主机。在Docker中,只有在同一个网络中的容器才能通过容器名进行通信。

1.创建docker网络
docker network create [network-name]  //network-name为网络名词自定义即可
2.将创建好的容器加入网络中
docker network connect [network-name] [container-name] //container-name为容器名称如mysql、nacos等
3.检查你的容器是否在同一个网络中
docker network inspect [network-name]

在这里插入图片描述
这样就可以通过mysql容器名作为连接IP了
在这里插入图片描述

六.遇到的问题

我使用的是阿里云的云服务器ECS,但是过段时间mysql服务就无法使用Navicat访问了,重启服务器就可以了,比较奇怪,可能是更新了安全组需要更新吧

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值