文章目录
- 前言
- 开始步骤
- 1. 增加mysql挂载目录
- 2.下载镜像
- 3. 启动mysql容器
- 4. 配置mysql
- 5.无法连接
- 5.测试连接
- 总结
前言
本文开始,默认已经安装docker,如果你还没有完成这个步骤,请查看这一篇文章【docker安装与使用】
开始步骤
1. 增加mysql挂载目录
mkdir -p /mydata/mysql8/conf
mkdir -p /mydata/mysql8/data
2.下载镜像
docker run mysql:8.0.28 # run 相当于pull create start 三合一
3. 启动mysql容器
-d
表示后台运行-v
挂载目录到本地,宿主机目录:容器目录,例如:-v /usr/local/nginx:/usr/local/nginx
--name
使用的是run命令,--name
会作用到create
命令表示创建一个name
为mysql8的
容器
docker run -d -v /mydata/mysql8/data:/var/lib/mysql -v /mydata/mysql8/conf:/etc/mysql/conf.d --name mysql8 -e MYSQL_ROOT_PASSWORD=mysql123 -p 3308:3306 -d mysql:8.0.28
4. 配置mysql
1 进入容器内部
docker exec -it mysql8 /bin/bash
2 登入mysql
mysql -u root -p #输完这个命令后,输入设置的密码第 3. 步骤设置的密码 mysql123
出现下面的内容表示登入成功
3 选择mysql数据库
use mysql
4 设置允许远程访问
在正常的情况下mysql的远程访问我们只需要配置东西即可.
- 1
防火墙对应端口是否开启,一般是3306
- 2
user用户表中是否存在root用户,并且其host列值为%
select user,host from user; # 查看用户表中root用户的配置
如果root用户的host列为%,即表示此用户可以远程访问,否则可以使用sql进行更改
update user set host='%' where user='root';
如果发现出现了两条root的用户记录,则需要删除一条
delete from where user='root' and host='localhost';
5.无法连接
如果无法远程连接,可以执行一下操作
1 防火墙否放开对应端口
firewall-cmd --zone=public --add-port=3308/tcp --permanent #放开指定端口
firewall-cmd --reload # 重启防火墙
firewall-cmd --list-port # 查看开启端口
5.测试连接
通过客户端工具进行连接即可
总结
以上的流程走完之后你将得到一个,基础的mysql服务。如果想要一个成熟的mysql服务,你还需要实现以下功能。
- 1.服务器应该进行过性能优化,包括合理的索引设计、查询优化、内存和I/O使用优化等。
- 2.数据备份和恢复:服务器应该有定期的数据备份策略,并能在数据丢失或损坏时进行数据恢复
- 3.高可用性:为了保证服务的连续性,服务器应该具备高可用性,例如通过主从复制、负载均衡、故障切换等方式来提高可用性。