Docker 安装 MySQL(8和5.7)
本篇将介绍如何使用Docker部署MySQL数据库及远程访问配置
安装MySQL
拉取镜像
使用下面的命令拉取MySQL数据库的镜像:
$sudodockerpullmysql#拉取最新版本的镜像,当前为MySQL8版本,tag为latest $sudodockerpullmysql:5.7#指定拉取MySQL5.7版本
也可以使用搜索命令,查找其他的MySQL相关镜像,其中有标识Stars数,即受欢迎程度。
$sudodockersearchmysql
运行MySQL
$sudodockerrun-p3306:3306\ --namemysql\ -v$PWD/conf:/etc/mysql/conf.d\ -v$PWD/logs:/logs\ -v$PWD/data:/var/lib/mysql\ -eMYSQL_ROOT_PASSWORD=your-password\ -dmysql
命令说明:
- -p3306:3306:将容器的3306端口映射到主机的3306端口。
- -v$PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf。
- -v$PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs。
- -v$PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/var/lib/mysql。
- -eMYSQL_ROOT_PASSWORD=your-password:初始化root用户的密码,建议使用复杂度高的密码。
- -dmysql:要部署的镜像名,如果是5.7版本的话,这里则为mysql:5.7
配置远程访问
远程访问MySQL属于基本配置,但是在配置的时候要注意安全性问题,否则将存在安全性隐患,尤其是企业用服务器更要注重安全性。
并且需要注意服务器防火墙要开启3306端口,服务器提供商的安全组中也需要开启,否则会无法访问哦。
要配置远程访问,先要打开MySQL的控制终端,使用下面的命令开启:
$sudodockerexec-itmysqlbash#进入MySQL容器 $mysql-uroot-p#登录MySQL,执行后输入密码进入MySQL $usemysql;#选择使用mysql数据库
MySQL8配置
CREATEUSER'username'@'%'IDENTIFIEDBY'password'; #创建一个账号,用来进行远程访问; #{usernama}是远程访问登录的用户名,不建议用root; #{password}是远程访问的登录密码; #'%'代表的是所有IP,如果可以尽量设置指定IP或IP段 GRANTALLON*.*TO'username'@'%'; #赋予所有权限给之前创建的账号 ALTERUSER'username'@'%'IDENTIFIEDWITHmysql_native_passwordBY'password'; #确认使用这里的密码登录此账号 FLUSHPRIVILEGES; #刷新权限
完整命令如下所示:
CREATEUSER'james'@'%'IDENTIFIEDBY'123456asd'; #创建一个账号-james,用来进行远程访问; GRANTALLON*.*TO'james'@'%'; #赋予所有权限给之前创建的账号:james ALTERUSER'james'@'%'IDENTIFIEDWITHmysql_native_passwordBY'123456asd'; #确认使用密码{123456asd}登录此账号{james} #密码尽量复杂,安全性更高。 FLUSHPRIVILEGES; #刷新权限
配置完毕后,使用Navicat工具或其他工具进行连接测试即可。
MySQL5.7配置
GRANTALLPRIVILEGESON*.*TO'username'@'%'IDENTIFIEDBY'password'WITHGRANTOPTION; #{usernama}是远程访问登录的用户名,不建议用root; #{password}是远程访问的登录密码; #'%'代表的是所有IP,如果可以尽量设置指定IP或IP段 FLUSHPRIVILEGES; #刷新权限
配置完毕后,使用Navicat工具或其他工具进行连接测试即可。
注:如果无法访问请注意防火墙3306端口是否开启,服务器提供商的安全组中的端口是否开启。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。