安装docker
1、查看centos系统内核版本
uname -r
注意:docker安装的前提条件系统在3.10版本或者3.10版本以上
2、用yum方式安装docker
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum -y install yum-utils
yum-config-manager --add-repo download.docker.com/linux/cento…
yum list docker-ce --showduplicates | sort -r
yum install docker-ce
注意,如果原先系统中没有安装yum,那要先安装yum
3、开启docker
systemctl start docker
systemctl enable docker
4、查看docker是否安装成功以及版本信息
docker version
我安装的是当前最新版:20.10.17
docker下安装mysql并修改相关权限
1、拉取mysql镜像
docker pull mysql
2、创建挂载文件
mkdir -p /data/docker/mysql
cd /data/docker/mysql/
echo @PWD
3、运行mysql容器
docker run --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/logs -v /data/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -p 3306:3306 -d -i mysql
4、由于mysql经常性会用Navicat等客户端连接,所以需要开放一下端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
5、给相关用户赋权
docker exec -it mysql bash
mysql -uroot -p
GRANT ALL ON . TO 'root'@'%';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
flush privileges;
exit;
exit;
这样就可以用Navicat连接并执行创建数据库、创建表等操作了。
6、踩坑记录
由于docker版本mysql安装的是8.0以上的版本,项目中原先用的一些group by等在执行sql语句的时候会出现问题,具体问题不清楚了,知识group by语句会报错,因此需要做一下配置文件的修改
(1)docker exec -it mysql bash
(2)vi /etc/mysql/my.cnf
//如果报错:vi command is not found
执行:apt-get update
apt-get install vim
(3)在配置文件中加入: sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
(4)exit;
(5)重启docker
sudo docker restart mysql
至此,mysql安装配置完成,可以顺利使用啦