一. 安装docker
1. 添加安装包路径
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2. 刷新yum索引
yum makecache fast
3. 通过yum安装docker
yum -y install docker
有的或许在安装之前还需要安装其他依赖(我这目前不需要)执行下边命令
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
4.通过命令
# 启动docker命令
systemctl start docker
# 添加开机启动
systemctl enable docker
到此docker就安装完成了
5. 添加国内镜像加速
# 到docker 配置目录下
cd /etc/docker/
# 执行一下命令 daemon.json这个文件存不存在无所谓
vim daemon.json
# 点击键盘上的 insert键 有的是 ins 然后输入以下内容
{
"registry-mirrors":
[
"https://xxx.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"http://hub-mirror.c.163.com"
]
}
# 我这里配置了三个 分别是阿里的镜像加速 腾讯的(只有腾讯云可用) 和网易的镜像加速 一般写一个就够了
# 阿里的需要登录阿里云镜像服务里获取
# 然后点击键盘的 esc 输出:wq
# 然后刷新配置
systemctl daemon-reload
# 重启docker
systemctl restart docker
二. 安装MySQL8.0.18
# 拉取MySQL8.0.18的docker镜像
docker pull mysql:8.0.18
# 设置挂在点(我是放到/home下) 执行一下命令
cd /home
mkdir docker
cd docker
mkdir docker-data
cd docker-data
mkdir mysql-data
cd mysql-data
mkdir data
mkdir log
mkdir my.conf.d
chmod 777 data
chmod 777 log
# data文件夹用于存放数据库数据文件 防止docker重启数据丢失 涉及读写所以需要赋予权限
# log文件夹用于存放数据库log日志 涉及读写所以需要赋予权限
# 在my.conf.d 编写mysql配置文件
cd my.conf.d
vim my.cnf
# 添加一下数据
[client]
# 默认字符集
#default-character-set=utf8
[mysql]
# 默认字符集
#default-character-set=utf8
[mysqld]
#
server-id=01
port=3306
## 开启二进制日志功能
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
# 忽略大小写
lower_case_table_names=1
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
# 数据库数据存放目录
datadir= /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
skip-symbolic-links=0
# 最大链接数
max_connections=200
# 最大失败次数
max_connect_errors=10
# 默认时区
default-time_zone='+8:00'
character-set-client-handshake=FALSE
character_set_server=utf8mb4
# default-character-set=utf8
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
# 默认使用‘mysql_native_password’插件认证
default_authentication_plugin= mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/
然后保存并退出 到此 mysql安装的准备工作完毕,
2. 启动mysql
docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=你的密码 \
-v /home/docker/docker-data/mysql-data/data:/var/lib/mysql:rw \
-v /home/docker/docker-data/mysql-data/log:/var/log/mysql:rw \
-v /home/docker/docker-data/mysql-data/my.conf.d/my.cnf:/etc/mysql/my.cnf:rw \
-v /etc/localtime:/etc/localtime:ro \
--name mysql \
--privileged=true \
--restart=always \
-d mysql:8.0.18
# -p 映射宿docke端口号到宿主机端口号 左:宿主机端口号 右:docker端口号
# -e MYSQL_ROOT_PASSWORD 设置root用户密码
# -v 挂载点 左边为挂载宿主机目录 右边为容器目录 :rw 为可读写
# 我们分别挂载刚在创建的数据存放目录 log存放目录 以及自定义配置文件 还有设置时区保证和宿主机一致
到此mysql安装完毕,
执行命令: docker ps -a
执行命令 : docker logs -f --tail=20000 mysql 查看日志
没有报错说明MySQL安装并启动成功 但是 到此还不能进行navicat远程连接 所以进行一下步骤:
# 为了服务器安全 开启防火墙 设置开机启动
systemctl start firewalld
systemctl enable firewalld
# 放开3306端口
firewall-cmd --add-port=3306/tcp
# 执行
docker ps -a
# 看到红框标注那个ID了么 没错 那就是容器ID
# 鼠标选中 用ctrl+instart 复制
# 输入 docker exec -it 复制的id(shift+insert粘贴) bash
docker exec -it 17159ea03ca2 bash
# 进入容器
# 执行
mysql -u root -p
# 输入启动上边数据的root密码 回车
# 然后创建用户
CREATE USER username IDENTIFIED BY 'password';
# 创建权限
GRANT ALL ON *.* TO 'username'@'%';
# 刷新权限
flush privileges;
# 查询用户 是否创建成功
select user,host from mysql.user;
# 那个框框里有说明创建成功 host里有% 说明是远程用户
# 然后输出exit退出mysql
exit
# 再次输入exit退出docker容器
exit
到此 安装docker 以及 MySQL安装完毕 也可以用navicat远程登录了
如果是云玩家,到此还不能登录 请在您的云控制台实例安全组中开放您配置的mysql端口号!