Docker部署MySQL

拉取MySQL镜像

docker pull mysql

查看镜像,检查是否拉取成功

docker images

创建MySQL容器

1、建立目录映射

mkdir /opt
mkdir /opt/mysql
mkdir /opt/mysql/conf/
mkdir /opt/mysql/logs/
mkdir /opt/mysql/data/

创建my.cnf配置文件

touch /opt/mysql/my.cnf

my.cnf添加以下内容:

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=500
secure_file_priv=/var/lib/mysql
default-time-zone='Asia/Shanghai'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8          

default-time-zone=‘Asia/Shanghai’ : 配置数据库时区,参数如果没有被明确设置,MySQL 会使用服务器的系统时区,而大多数 Linux 容器的基础镜像的系统时区默认是 UTC

创建容器,并后台启动

docker run --restart=always --privileged=true \
-v /opt/mysql/data/:/var/lib/mysql \
-v /opt/mysql/logs/:/var/log/mysql \
-v /opt/mysql/conf/:/etc/mysql \
-v /opt/mysql/my.cnf:/etc/mysql/my.cnf \
-p 3306:3306 --name my-mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql

-v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
–restart=always: 当Docker 重启时,容器会自动启动。
–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

连接MySQL

进入mysql容器

docker exec -it my_mysql /bin/bash

登陆mysql

mysql -u root -p

mysql 8 设置允许远程用户访问

update user set host = '%' where user = 'root' and host='localhost'; # 更新root - localhost 为 root - %

GRANT ALL ON *.* TO 'root'@'%'; # 设置允许远程用户访问

flush privileges;# 刷新权限

ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘密码’;#更新用户加密方式,mysql8默认的加密方式为caching_sha2_password 与mysql5的加密方式mysql_native_password 不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值