Docker部署Mysql5.7x和Myslq8.x

Docker部署Mysql5.7x和Myslq8.x

1.部署mysql5.7.x

  在D盘下的mysql目录下新建如下目录:

图片

  D:\mysql\conf\my.cnf内容如下:

[mysqld]
# 同一局域网内注意要唯一
server-id=1
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
log-bin=mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
expire_logs_days=30

  部署mysql7.x命令:

docker run -p 3306:3306 --name mysql_server --privileged=true -v "d:/mysql/logs":/var/log/mysql -v "d:/mysql/data":/var/lib/mysql -v "d:/mysql/conf":/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.7.16

2.部署mysql8.x

  在D盘下的mysql8目录下新建如下目录:

图片

  D:\mysql8\conf\my.cnf内容如下:

[mysqld]
# 同一局域网内注意要唯一
server-id=1
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
log-bin=mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
expire_logs_days=30
skip-grant-tables #先跳过密码登录 进入容器中mysql -u root进入mysql命令行,改完密码授权和远程访问结束后注释重启即可

  这里的这个mysql8的这个cnf配置我用的是上面mysql7的文件,如果有啥问题,可以去找一个mysql8的安装包下的这个文件拷贝到这个cnf目录下根据自己的需求修改即可,使用这个文件的配置是可以正常启动起来.

  部署mysql8.x命令:

docker run -p 3306:3306 --name mysql8_server --privileged=true -v "d:/mysql8/logs":/var/log/mysql -v "d:/mysql8/data":/var/lib/mysql -v "d:/mysql8/conf":/etc/mysql -v "d:/mysql8/mysql-files":/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:8.0.28

3.创建用户授权及远程登录

3.1 mysql5.7创建用户授权及远程登录

  1.创建用户并授权

CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES; #刷新生效

  上述命令中,‘root’是要创建的用户名,’%'表示允许从任何主机远程访问,'password’是该用户的密码。GRANT ALL PRIVILEGES语句授予了该用户对所有数据库和表的所有权限,WITH GRANT OPTION表示该用户可以授予其他用户相同的权限。如果你只想允许该用户访问特定的数据库,而不是所有数据库,可以将*.*替换为数据库名和表名的组合。例如,如果要允许该用户访问名为"mydatabase"的数据库,可以使用以下命令:

GRANT ALL PRIVILEGES ON mydatabase.* TO 'root'@'%' WITH GRANT OPTION;

3.2 mysql8创建用户授权及远程登录

参看好文链接入下:
mysql8创建用户并授权:
https://blog.csdn.net/qq_43332829/article/details/123382600

CentOS7安装MySQL8(超级详细图文安装)
https://blog.csdn.net/yubao0723/article/details/128731140

  命令如下:

1.通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 命令来修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 

2.远程访问授权
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

3.修改加密规则
通过 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 
flush privileges;

4.总结

  本文记录总结了在windows10环境下,安装有wsl的Linux子系统和DockerDesktop,通过docker就可以轻松的将本地的mysql7.x和mysql8.x开发环境轻松部署起来,只需要一条docker的启动命令和新建文件挂载目录即可,这种方式比起平时那种在windows10上安装mysql要简单快捷的多,上面是在windows10环境下,在Linux上只要把挂载的路径换成Linux下的文件路径即可,启动起来就可以使用Navicat Premium 15客户端进行连接了,上面的my.cnf里面的配置已经是开启了bin-log日志功能,要去进入docker中将该文件的权限给为777才会生效,否则是不生效的,这里之前一篇文章中有写的,这种总结一下,就不用每次要用的时候要去各种百度,太费时间精力了,所以总结一次之后,需要用的参考文档即可快速搞定,我的分享到此结束了,希望对你有所帮助,请一键三连,么么么哒!

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker部署MySQL 5.7,可以按照以下步骤进行操作: 1. 首先,拉取MySQL 5.7的Docker镜像。可以使用以下命令拉取指定版本的MySQL镜像:docker pull mysql:5.7 [3] 2. 创建需要挂载的目录,用于数据配置的持久化。可以使用以下命令创建目录:mkdir -p /usr/local/docker/mysql5.7/conf、mkdir -p /usr/local/docker/mysql5.7/data、mkdir -p /usr/local/docker/mysql5.7/log [2] 3. 接下来,创建MySQL容器并挂载目录。可以使用以下命令创建并启动MySQL容器: docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<root密码> --name mysql5.7 -v /usr/local/docker/mysql5.7/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql5.7/data:/var/lib/mysql -v /usr/local/docker/mysql5.7/log:/var/log/mysql mysql:5.7 在上述命令中,-d标志表示以后台模式运行容器,-p 3306:3306指定容器端口映射到主机的3306端口,-e MYSQL_ROOT_PASSWORD=<root密码>指定root用户的密码,--name mysql5.7指定容器的名称,-v参数用于挂载目录,将主机上的目录与容器内的目录进行关联。 [2] 4. 完成上述步骤后,MySQL 5.7容器将会成功创建并运行。现在您可以使用任何MySQL客户端连接到MySQL数据库,并使用指定的root密码进行身份验证。 通过以上步骤,您可以使用Docker成功部署MySQL 5.7,并实现数据配置的持久化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker安装mysql5.7详细教程](https://blog.csdn.net/qq_44697728/article/details/114550159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [docker下安装mysql5.7教程](https://blog.csdn.net/weixin_44947701/article/details/125957909)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值