【MySQL】docker安装mysql5.7

1、docker hub

https://hub.docker.com/_/mysql

 

2、创建目录

mkdir -p $HOME/mysql/conf $HOME/mysql/data $HOME/mysql/log

 

3、编辑配置文件

# 编辑配置文件my.cnf
vim my.cnf

# 新增配置文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

 

4、安装脚本

docker run -d \
-p 3306:3306 \
--privileged=true \
-v $HOME/mysql/conf/my.cnf:/etc/my.cnf \
-v $HOME/mysql/data:/var/lib/mysql \
-v $HOME/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql5.7 mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci
参数说明: run 运行一个容器
-d 后台运行 -p 3306:3306 容器内部端口和服务器端口映射关联 --privileged=true 设置mysql用户,否则外部不能使用root用户登录 -v $HOME/mysql/log:/var/log/mysql 服务器的log目录映射

-v $HOME/mysql/conf/my.cnf:/etc/my.cnf 服务器的/docker/mysql/conf/my.cnf配置映射到docker的my.cnf -v $HOME/mysql/data:/var/lib/mysql 映射数据库的数据目录,避免docker删除重新运行mysql容器,导致数据丢失 -e MYSQL_ROOT_PASSWORD=123456 设置root账号的密码 --name mysql5.7 mysql:5.7 从docker镜像mysql:5.7启动一个容器,并设置容器的名称为mysql5.7 --character-set-server=utf8mb4

--collation-server=utf8mb4_general_ci 设置数据库默认编码

 

5、配置远程访问(如果可以远程访问就跳过)

进入容器

docker exec -it 容器名称|容器id bin/bash
docker exec -it  mysql5.7  bin/bash

进入mysql

//1.登录mysql
mysql -uroot -p
//2.进行授权
GRANT ALL ON *.* TO 'root'@'%';
//3.刷新权限
flush privileges;
//4.加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//5.更新root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
//6.刷新权限
flush privileges;

不行的话,看下配置文件,并注释bind=127.0.0.1

 

6、设置开机自启动(可以加到run命令中)可选

docker update mysql --restart=always

 

7、测试远程连接

省略

 

 

参考链接:

https://blog.csdn.net/qq_39893313/article/details/121557788

https://blog.csdn.net/guan1843036360/article/details/124959471

posted @ 2022-08-01 15:34  代码诠释的世界  阅读(358)  评论(0编辑  收藏  举报