前提
Linux 的 Centos7 系统内核为3.10 以上命令
[root@localhost ~]# lsb_release -a //Centos 版本
[root@localhost ~]# uname -r // 系统内核
开始
//安装一些必要的系统工具
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
//设置docker镜像源
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-c
//查看docekr版本
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
// 安装 docker 17.12.1
[root@localhost ~]# yum install docker-ce-17.12.1.ce
// 启动 docker
[root@localhost ~]# systemctl start docker
// 设置开机启动
[root@localhost ~]# systemctl enable docker
// 查看docker版本
[root@localhost ~]# docker version
下载mysql8.0
//查看MySQL版本
[root@localhost ~]# docker search mysql
//下载 MySQL镜像
[root@localhost ~]# docker pull mysql:8.0.18 或者下载最新版 docker pull mysql
//查看镜像
[root@localhost ~]# docker images
挂载MySQL 8.0
// 创建本地挂挂载目录
[root@localhost ~]# mkdir -p /usr/local/docker/mysql/data
[root@localhost ~]# mkdir -p /usr/local/docker/mysql/mysql-files
[root@localhost ~]# mkdir -p /usr/local/docker/mysql/cnf
[root@localhost ~]# mkdir -p /usr/local/docker/mysql/log
//设置mysql配置文件 ,其中 sql_mode 设置group by 样式,并放在cnf 文件夹中,
// 我的my.cnf文件内容如下
#Apply this config only on the master.
[client]
port = 3306
default-character-set = utf8mb4
[mysql]
port = 3306
default-character-set = utf8mb4
[mysqld]
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
# bind-address = 0.0.0.0
# port = 3306
max_connections=10000
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 设置时区和字符集
# default-time-zone='+8:00'
character-set-client-handshake=FALSE
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
gtid-mode=ON
enforce-gtid-consistency = ON
启动
//挂载并启动MySQL
[root@localhost ~]# docker run --restart=always --name mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /usr/local/docker/mysql/cnf:/etc/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/log:/var/log -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files mysql:8.0.18
// 查看是否启动成功
[root@localhost ~]# docker ps -a
// 扩展 暂停 删除(先暂停在删除)
[root@localhost ~]# docker stop CONTAINER ID或者名字
[root@localhost ~]# docker rm CONTAINER ID或者名字
远程链接
//忽略端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=30036/tcp --permanent
// 重启防火墙
[root@localhost ~]# firewall-cmd --reload
// 如果是阿里云 需要设置阿里云的安全规则
//安装完8.0 后 用navicat中报错client does not support authentication
//在mysql workbench中报外部组件错误
//解决办法
[root@localhost ~]# docker exec -it mysql8.0 bash
root@72b85f485s55:/# mysql -u root -p
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
mysql> exit;
root@72b85f485s55:/# exit;
就此结束 安装完成