Docker安装MySQL 并挂载数据及配置文件,设置远程访问权限

caocao2年前教程451

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

docker pull mysql:8
kali检测并挂载安装介质

实现docker安装mysql,并挂载数据及配置文件,设置远程访问权限,并且介绍docker一些命令的使用。

拉取景象 拉取mysql 8版本 挂载数据卷以及配置文件 虽然官网上说默认配置文件在/etc/mysql/my.cnf但是有些镜像的配置文件实际位置不确定,不如我的默认配置文件在/etc/my.cnf,所以创建临时镜像查询默认配置文件的位置,然后复制出来,用来绑定本地配置文件。

  1. 为了获取默认mysql配置文件,创建一个临时容器 每个人部署的 MySQL 内,可能文件路径不一致。我们可以先创建个测试的 MySQL 容器,然后再根据查找出的文件具体路径位置,重新创建我们符合我们需求的 MySQL 容器,命令如下:
docker run --name mysqltest \
-p 3307:3306 -e MYSQL_ROOT_PASSWORD=root \
-d mysql
docker exec -it mysqltest bash
# 查找Docker内,MySQL配置文件my.cnf的位置
mysql --help | grep my.cnf
# 显示如下,意思是路径按优先排序,会是在以下路径里:
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
# 配置文件的路径不一定都一样,有些博客介绍的位置是在/etc/my.cnf。而Ubuntu系统上,实际存在位置是在/etc/mysql/my.cnf
kali检测并挂载安装介质
  1. 进入Docker容器内

  2. 确定Docker内 MySQL 文件相关路径 找到配置文件的默认位置。

  3. 创建本地路径并挂载Docker内数据 接下来,我们需要在物理机上,创建指定好一个数据和配置文件的挂载路径。

mkdir -p /docker/mysql/config && mkdir -p /docker/mysql/data
 docker cp mysqltest:/etc/my.cnf /docker/mysql/config/
docker run \
--name mysql \
-v /docker/mysql/config/my.cnf:/etc/my.cnf \
-v /docker/mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123 \
--restart=on-failure:3 \
-d mysql:8

创建两个文件夹存放mysql的配置文件和数据 创建好本地的挂载数据路径后,我们再将临时容器里 MySQL 的配置文件复制到该路径。日后需改配置,直接在挂载路径的配置文件上修改即可。 创建 MySQL 容器并启动

#进入容器
docker exec -it mysql bash
kali检测并挂载安装介质
mysql -u root -p
use mysql;
select host, user, authentication_string, plugin from user; 
kali检测并挂载安装介质

MySQL8.0设置远程访问权限 从物理机进入mysql容器 登录MySQL 选择 mysql 数据库 在 mysql 数据库的 user 表中查看当前 root 用户的相关信息 执行完上面的命令后会显示一个表格 查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
select host, user, authentication_string, plugin from user; 
kali检测并挂载安装介质

授权 root 用户的所有权限并设置远程访问 GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。 刷新权限 查看 root 用户的 host 再次执行步骤 2,root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。

docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql

注意事项

  1. 针对现有数据库创建容器 如果您使用mysql已经包含数据库的数据目录启动容器实例,$MYSQLROOTPASSWORD则应从运行命令行中省略该变量;

  2. 创建数据库转储 同一个容器中使用docker exec和运行该工具,导出mysql所有数据写入本地文件,类似于以下内容:

docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql

相关文章

思路+源码,利用Python破解WIFI密码详解,100M的字典已备好

思路+源码,利用Python破解WIFI密码详解,100M的字典已备好

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 前言 WIFI破解,Py...

视频会议软件哪家强?15款热门产品任你选

视频会议软件哪家强?15款热门产品任你选

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 在疫情的催化下,远程视频...

黑客是怎么破解你的密码的?

黑客是怎么破解你的密码的?

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 嘿,电脑怪杰们,Neo粉...

wifi密码破解软件(带字典下载)2012

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 WIFI密码暴力还原脚本...