Linux安装docker并安装docker版本的mysql

386 阅读2分钟

安装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安装配置完成,可以顺利使用啦