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

caocao2年前教程486

在线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

相关文章

wifi密码怎么破解 wifi密码破解的三个方法介绍

wifi密码怎么破解 wifi密码破解的三个方法介绍

WiFi密码破解的三种方法 在本文中,我们将介绍WiFi密码破解的三种方法,以帮助您更好地了解和保护您的网络设备。 方法一:使用WiFi破解软件 这是最简单的一种方法,通过使用WiFi某某钥匙等软件来...

MacOS破解WiFi(WPA、WPA2)

MacOS破解WiFi(WPA、WPA2)

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 sudo ln -s /...

kali系统安装驱动安装教程

kali系统安装驱动安装教程

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 最新超详细虚拟机VMwa...

kali linux 下载与 安装教程

kali linux 下载与 安装教程

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 回答1:Kali Lin...