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

caocao1年前教程247

在线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教程代码,Python蹭网原理讲解

python破解WiFi教程代码,Python蹭网原理讲解

Python破解WiFi教程代码,Python蹭网原理讲解 更新时间:2023年01月27日 15:51:15 投稿:yin 用Python生成一个简单的密码本 一般密码本由数字、字母和符号组成,我们...

Web页面验证码机制漏洞的检测

Web页面验证码机制漏洞的检测

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 每个用户都在部分网站上注...

5,除了万能钥匙还有什么有效的方法破解Wifi密码

5,除了万能钥匙还有什么有效的方法破解Wifi密码

手机破解WIFI密码的方法 首先,我们可以使用"WiFi万能钥匙"这款软件来破解WIFI密码。打开该软件并开启WIFI开关,它会自动搜索附近的WIFI网络。如果有密码被共享到服务器上,它会显示出来。...

快速简易,硬盘启动安装CDLinux实用指南 (硬盘启动安装cdlinux)

快速简易,硬盘启动安装CDLinux实用指南 (硬盘启动安装cdlinux)

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 如果你正在寻找一种快速简...