Docker安装mysql8.0并开启远程访问

环境: centos7

1. 拉取镜像

docker pull mysql:8.0.15

2. 构建镜像

新增挂载文件夹

mkdir -p /mydata/mysql/log
mkdir -p /mydata/mysql/data
mkdir -p /mydata/mysql/conf
mkdir -p /mydata/mysql/mysql-files

新增mysql配置文件

cd /mydata/mysql/conf

vim my.cnf

将如下配置复制到my.cnf文件并保存

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#忽略客户端信息并使用默认服务器字符集
skip-character-set-client-handshake
#禁止DNS解析
skip-name-resolve
#限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录
secure_file_priv=/var/lib/mysql

构建

docker run -p 3308:3306  \
--name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.15

注意mysql8.0如果使用docker挂载数据到宿主机,需要新增mysql-files文件的挂载否则无法启动

-v /mydata/mysql/mysql-files:/var/lib/mysql-files \

3.配置远程访问
进入docker-mysql容器

docker exec -it  mysql /bin/bash

连接mysql服务端

mysql -u root -p

密码为root
Docker安装mysql8.0并开启远程访问_第1张图片
先修改下mysql root用户密码

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'qweasdaqerqwe';

刷新权限

flush privileges;

开启远程访问并修改默认密码和加密方式

alter user 'root'@'%' identified with mysql_native_password by 'root';

你可能感兴趣的:(环境部署,docker,mysql)