在 Docker 中运行 MySQL 并允许 root 用户进行远程访问

news/2024/10/22 14:04:18/

前言

这份文档将指导您在 Docker 容器中运行 MySQL,并配置允许 root 用户远程访问。以下是详细的步骤和参数解释:

步骤

步骤 1: 运行 MySQL 容器

使用以下命令在 Docker 中启动 MySQL 5.7.14 容器:

docker run -d --restart=always -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=my_password \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_HOST="%" \
-v $PWD/mysql-bin:/usr/local/mysql/data/mysql-bin \
-v $PWD/data:/var/lib/mysql \
-v $PWD/logs:/var/log/mysql \
-v $PWD/mysql.conf.d:/etc/mysql/mysql.conf.d \
mysql:5.7.14
步骤 2: 参数解释
  • -d: 以守护进程方式在后台运行容器。
  • --restart=always: 容器退出后会自动重启。
  • -p 3306:3306: 将容器的 MySQL 默认端口 3306 映射到主机的 3306 端口。
  • -e MYSQL_ROOT_PASSWORD=my_password: 设置 MySQL 的 root 用户密码(请更改为您的安全密码)。
  • -e TZ=Asia/Shanghai: 设置容器的时区为亚洲/上海时区。
  • -e MYSQL_ROOT_HOST="%": 允许 root 用户从任何主机(%)远程访问 MySQL。
  • -v $PWD/mysql-bin:/usr/local/mysql/data/mysql-bin: 将容器中 MySQL 的 binlog 存储到主机的 $PWD/mysql-bin 目录。
  • -v $PWD/data:/var/lib/mysql: 将 MySQL 数据目录挂载到主机的 $PWD/data 目录。
  • -v $PWD/logs:/var/log/mysql: 将 MySQL 的日志目录挂载到主机的 $PWD/logs 目录。
  • -v $PWD/mysql.conf.d:/etc/mysql/mysql.conf.d: 将 MySQL 的配置文件目录挂载到主机的 $PWD/mysql.conf.d 目录。
步骤 3: 连接到远程 MySQL 数据库

现在,root 用户可以通过远程连接到 MySQL 数据库。使用 MySQL 客户端或其他数据库工具,在远程机器上连接到 MySQL 服务器:

  • 主机: MySQL 服务器的 IP 地址或主机名
  • 端口: 默认的 MySQL 端口是 3306(根据映射)
  • 用户名: root
  • 密码: 在运行容器时设置的密码
  • 数据库: 远程数据库名称
自定义配置

若要进行自定义配置,请执行以下操作:

  1. 创建配置文件夹:

    mkdir mysql.conf.d
    
  2. 编辑配置文件 mysqld.cnf

    vim ./mysql.conf.d/mysqld.cnf
    
    [mysqld]
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    log-error = /var/log/mysql/error.log
    symbolic-links = 0
    lower_case_table_names = 1
    max_connections = 10000
    server-id = 1
    log-bin = /usr/local/mysql/data/mysql-bin
    expire_logs_days = 2
    

    修改以上参数以满足您的需求。

  3. 调整配置文件权限:

    chmod 640 mysqld.cnf
    
安全注意事项
  • 修改端口和密码: 在 docker run 命令中可以更改端口号、数据库名称或密码。
  • 加强安全措施: 允许 root 用户进行远程访问存在安全风险,应在生产环境中采取额外的安全措施。
停止和清理

停止 MySQL 容器,可使用以下命令:

docker stop CONTAINER_ID

删除 MySQL 容器,可使用以下命令:

docker rm CONTAINER_ID

总结

使用 Docker 命令运行 MySQL 并允许 root 用户进行远程访问,为开发和测试环境提供了灵活性。在生产环境中需加强安全措施以确保系统安全。


http://www.ppmy.cn/news/1275823.html

相关文章

前端-如何自己做一个可视化的人员选择泛用组件

一、展示组件效果 二、组件的功能 1.用户可以在搜索框里输入字符,下方列表实时变动(筛选出包含搜索字符的可选项),如果没有字符,就展示所有的选项 2.用户点击可选项,右侧出现标签 3.用户点击标签的XX&am…

Re解析(正则表达式解析)

正则表达式基础 元字符 B站教学视频: 正则表达式元字符基本使用 量词 贪婪匹配和惰性匹配 惰性匹配如下两张图,而 .* 就表示贪婪匹配,即尽可能多的匹配到符合的字符串,如果使用贪婪匹配,那么结果就是图中的情况三 p…

SpringData JPA 整合Springboot

1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

配置paddleocr及paddlepaddle解决报错 GLIBCXX_3.4.30 FreeTypeFont

配置 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/StyleText/README_ch.md#style-text 环境配置 https://www.paddlepaddle.org.cn/ 根据自己的cuda版本选择paddlepaddle-gpu # 新建conda环境 # python version conda create -n paddle python3.8 # 安装p…

【机器学习】043_准确率、精确率、召回率

一、定义 在处理偏斜数据集时&#xff0c;通常使用不同的误差度量&#xff0c;而不仅仅是使用分类误差来衡量算法性能。 1. 混淆矩阵的概念 二分类问题的混淆矩阵为2X2矩阵&#xff0c;由四部分组成&#xff1a; 假阴性&#xff08;FN&#xff09;&#xff1a;模型预测为负…

传统小微企业用 CRM 系统能提高多少业绩?(CRM 系统的功能和效果评估)

CRM管理系统迭代至今&#xff0c;其功能已经非常全面。对于小微企业来说&#xff0c;他们需要的往往还是那些核心的CRM功能。这也表明管理潜在客户和联系人以及自动化销售流程仍然是CRM的主要功能之一。鉴于当今有许多渠道可以接触到客户&#xff0c;营销的作用越来越突出。同样…

13 v-show指令

概述 v-show用于实现组件的显示和隐藏&#xff0c;和v-if单独使用的时候有点类似。不同的是&#xff0c;v-if会直接移除dom元素&#xff0c;而v-show只是让dom元素隐藏&#xff0c;而不会移除。 在实际开发中&#xff0c;v-show也经常被用到&#xff0c;需要重点掌握。 基本…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见&#xff0c;比如性别&#xff0c;要么是男&#xff0c;要么是女。比如单选题&#xff0c;给出多个选择&#xff0c;但是只能选择其中的一个。 在本节课中&#xff0c;我们演示一下这两种常见的用法。 基本用法 我们创建src/component…