在开始使用docker到完成mysql的安装部署,中间有很多的坑等着
安装docker并配置
sudo yum install docker-ce
启动docker并设置开机启动项
sudo systemctl start docker
sudo systemctl enable docker
查看docker是否启动
sudo systemctl status docker
或者直接docker image也可以验证
但是docker无法pull镜像到本地,我这一直显示443
找了很多办法,最后其实还是改第三方镜像源地址
打开并编辑配置文件
vi /etc/docker/daemon.json
按i进行编辑 配置内容
{"registry-mirrors": ["https://docker.1ms.run","https://docker.1panel.live/"]
}
修改后,按Esc,再输入 :wq 保存
重新加载docker配置并重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
这样docker 就能够正常的拉取images了
安装部署mysql8.3.0
docker pull mysql:8.3.0
查看mysql镜像是否安装
docker images mysql:8.3.0
创建挂载目录
mkdir -p /home/mysql/{conf,data,log}
cd /home/mysql/conf
vim my.cnf
修改my.conf文件
[client]
#设置客户端默认字符集utf8mb4
default-character-set=utf8mb4
[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数
binlog_expire_logs_seconds = 2592000
#解决MySQL8.0版本GROUP BY问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#允许最大的连接数
max_connections=1000
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'
修改方式和上面一样 输入i 进行编辑 ,按esc :wq 保存并退出
启动运行
docker run \
-p 3306:3306 \
--restart=always \
--name mysql \
--privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.3.0
password=root那里可以自定义,是mysql的密码
验证mysql8.3.0是否正常运行
docker ps -a
看status那里,如果是up就说明正在运行中,如果是restart或者Exit的就说明启动失败
输入 docker logs 94ededaf181b 查看报错信息,后面的这一串指的是容器的id
好了,这就是实现的全部内容了,goodbey