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 \

如果无法启动且报Can’t read dir of ‘/etc/mysql/conf.d/’ errorcode:2- No such file or dirertory
需要把

-v /mydata/mysql/conf:/etc/mysql \  

换成

-v /mydata/mysql/conf/my.cnf:/etc/mysql.cnf \ 

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

docker exec -it  mysql /bin/bash

连接mysql服务端

mysql -u root -p

密码为root
在这里插入图片描述
先修改下mysql root用户密码

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

刷新权限

flush privileges;

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

alter user 'root'@'%' identified with mysql_native_password by 'root';
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值