安装docker
1.1 使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum update
1.2 卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
1.3 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
1.4 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.5 安装docker
yum install docker-ce
1.6 启动并加入开机启动
systemctl start docker
systemctl enable docker
安装mysql
2.1 拉取镜像文件
安装最新的mysql
docker pull mysql:latest
或者 指定特定版本的mysql
docker pull mysql:5.7
2.2 查看镜像
docker images
2.3 运行容器
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
2.4 查看容器运行状况
docker ps
2.5 进入容器
docker exec -it mysql bash
mysql -uroot -p123456
如果要关闭容器,那就要先停止容器然后删除
docker ps -a #查看所有的容器 docker stop 6ae9d17850f8 #找到容器id并停止 docker rm 6ae9d17850f8 #最后删除
外部访问Mysql
3.1 防火墙开放端口
- 开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
- 重启防火墙
firewall-cmd --reload
- 查看防火墙的端口是否开通3306
firewall-cmd --zone=public --query-port=3306/tcp
其他非firewall 可以参考 《linux 防火墙开放端口,将防火墙firewalld换成iptables》
3.2 Mysql 开放外部访问权限
- 进入mysql,执行授权命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的数据库密码' WITH GRANT OPTION;
- 刷新授权
flush privileges;
- 查看用户root是否开通外部访问权限
use mysql;
select host from user where user = 'root';
3.3 Navicat 不能访问问题
由于8.0版本密码登录方式不同,因此需要修改密码登录方式,从caching_sha2_password 改成 mysql_native_password
1.授权
GRANT ALL ON *.* TO 'root'@'%';
2.更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
3.更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4.刷新权限
flush privileges;