腾讯云服务器Centos7.6 Docker环境下安装Mysql5.7(解决IPV4不通问题)

一、服务器配置

        购买的腾讯云服务器

CPU: 1核
内存: 2 G
操作系统: CentOS 7.5 64位

二、安装步骤

安装前知晓关于docker的相关命令:

1、重启docker

 systemctl restart docker   

2、查看所有的容器包括停止的

docker ps -a

3、查看运行容器

docker ps 

4、移除容器

 docker rm ID

5、停止和启动容器

docker  start ID   和 docker stop ID

6、重启容器

docker restart ID

首先解决IPV4不通的问题:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

生效配置文件
sysctl -p

查看监听端口
lsof -OnP | grep LISTEN
netstat -ntple

route -n

docker search 镜像名(如:mysql、tomcat、redis)

第一步:拉取docker mysql(直接复制粘贴就可以)

拉取的时候如果太慢,直接去阿里云镜像网站

https://promotion.aliyun.com/ntms/act/kubernetes.html

vi  /etc/docker/daemon.json

"registry-mirrors": ["https://u1qs4whp.mirror.aliyuncs.com"]

sudo systemctl daemon-reload

sudo systemctl restart docker

然后按照镜像加速器中的方法和命令重启docker进行拉取

docker pull mysql:5.7

第二步:使用下面命令,查看是否拉取到docker mysql到本地

docker images 

第三步:使用mysql镜像并且密码设置为你自己想要设置的数据库密码,直接复制这句话就行

docker run -d -p 53306:3306 --name docker-mysql --restart=always --privileged=true -v /root/docker/mysql57/conf:/etc/mysql/conf.d -v /root/docker/mysql57/logs:/logs -v /root/docker/mysql57/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

然后进入到conf文件夹下 创建一个mysql.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
default-time_zone='+8:00'


然后保存退出,运行命令重启容器

docker restart ID

 

docker run是启动容器的命令;
--restart=always: 配置此项后, 当 Docker 重启时,容器总是可以自动启动, 其它参数可以参考:[no,on-failure,always]

1.no为默认值,表示容器退出时,docker不自动重启容器
2.on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃:
3.always表示,只要容器退出,则docker将自动重启容器
--privileged=true : 使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一个普通用户权限

--name:指定了容器的名称,方便之后进入容器的命令行

-d:d指的是在后台运行。 也可以使用-idt,i是交互式操作,t是一个终端,

-p:指在本地生成一个随机端口,用来映射mysql的3306端口

-e:设置环境变量

MYSQL_ROOT_PASSWORD=emc123123:指定了mysql的root密码

mysql:5.7:指运行mysql镜像及tag

-v :表示挂载, 持久化存储的关键所在
 

第五步:连接docker mysql

docker exec -it docker-mysql bash

docker exec -it 79041dfb4aaf bash

也可以使用容器编号进入容器

mysql -uroot -p

输入密码连接成功如图所示

第六步:调试和Mysql 工具进行连接,登录到mysql以后输入如下命令

select host, user,plugin,authentication_string from mysql.user;

grant all privileges on *.* to root@"%" identified by "password" with grant option; 

 flush privileges;

 

看到这里退出

查看端口状态

netstat -anp | grep 3306

查看防火墙状态

 firewall-cmd --state

关闭禁用启动查看防火墙状态
systemctl stop firewalld.service

systemctl disable firewalld.service
 systemctl start firewalld.service
 firewall-cmd --state


 

打开3306端口 

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

重载防火墙

firewall-cmd --reload

查看80端口是否打开

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

打开80端口

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

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

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

 

  到此已经打开需要的端口,然后可以用本地工具连接腾讯云上面docker下安装的mysql5.7了

如果还有问题没解决试试以下方法:

 

这样可以解决问题:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

# 生效配置文件
sysctl -p

vi /etc/docker/daemon.json

"registry-mirrors": ["https://u1qs4whp.mirror.aliyuncs.com"]

sudo systemctl daemon-reload

sudo systemctl restart docker

docker pull mysql:5.7


sysctl net.ipv6.bindv6only


方法1:编辑/etc/sysctl.conf文件,添加如下两行到文件

vi /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv4.ip_forward = 1


# 生效配置文件
sysctl -p


重启网络:

执行命令:systemctl restart network

route -n

查看监听端口
lsof -OnP | grep LISTEN
netstat -ntple

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值