type
status
date
slug
summary
tags
category
icon
password
💡
准备好迎接我的碎碎念了么

MySQL部署与远程访问配置

引言

在现代数据管理领域,MySQL作为一款广泛使用的关系型数据库管理系统,其部署方式直接影响到系统的性能、可维护性和可扩展性。本文将深入探讨在CentOS环境下部署MySQL的两种主要方法:基于Docker的容器化部署和传统的直接安装方法。我们将详细分析每种方法的技术细节、操作步骤、优势和注意事项,并特别关注如何配置远程访问,为读者提供全面的技术参考。

基于Docker的MySQL容器化部署

Docker容器化技术通过提供一个轻量级、独立的运行环境,极大地简化了应用程序的部署和管理过程。以下是在CentOS系统上使用Docker部署MySQL的详细步骤和技术考量。

1. Docker环境准备

首先,需要在CentOS系统上安装并配置Docker环境:
安装完成后,验证Docker服务状态:
notion image

2. MySQL镜像获取

考虑到网络因素,建议配置国内镜像源以优化下载速度:
拉取后查看镜像
notion image
REPOSITORY是你的镜像名称,执行命令时需要用到
若是这些镜像不能用,可以用下面的镜像源
具体使用:
docker pull dockerpull.com/library/mysql:latest
 

3. MySQL容器运行配置

这里采用了挂载数据卷模式
需要你首先在/usr/local/src/文件夹下面创建
由于mysql8之后需要自己创建配置文件,在conf中创建my.cnf文件
使用以下命令创建并运行MySQL容器,注意调整参数以符合生产环境需求:
参数说明:
  • -name: 指定容器名称
  • e: 设置root密码、初始数据库和用户(自行修改)
  • p: 端口映射
  • v: 数据卷挂载,确保数据持久化
  • -restart=always: 确保容器在 Docker 服务或主机重启时自动重启。
  • d: 后台运行容器。
  • mysql:latest: MySQL镜像名称
执行过后
notion image
查看容器状态
notion image

4. 容器管理和维护

对于运行中的MySQL容器,可以使用以下命令进行管理:

5. 配置远程访问

在Docker环境中配置MySQL远程访问相对简单,主要涉及网络设置和用户权限:
进入容器:
notion image
为远程用户授权:
若是创建的时候报错说明该用户已存在
notion image
可用这个方式查看
notion image

6. 配置CentOS防火墙

如果您的CentOS系统启用了防火墙,需要开放3306端口:

7. 性能优化

对于生产环境,建议通过自定义配置文件来优化MySQL性能。更新my.cnf文件:

8. 重新启动容器,加载配置

9. 外部连接

打开navict,新建连接,选择Mysql
notion image
输入以下信息,若不知道主机ip,可以通过ip addr 进行获取
notion image
notion image
点击测试连接
notion image

传统方式安装MySQL

传统安装方法提供了更直接的系统级控制,适合需要深度定制的场景。以下是在CentOS系统上安装MySQL的详细步骤:

1. MySQL服务器安装

在CentOS系统上,执行以下命令安装MySQL服务器:

2. 安全配置

首先,获取MySQL的临时密码:
使用此临时密码登录,然后运行MySQL安全脚本进行初始配置:
此脚本将引导您完成以下安全设置:
  • 设置新的root密码
  • 移除匿名用户
  • 禁止root远程登录
  • 删除测试数据库

3. 系统配置优化

编辑MySQL配置文件/etc/my.cnf,根据服务器硬件资源和预期负载调整参数:

4. 配置远程访问

a. 编辑MySQL配置文件:
[mysqld]部分添加或修改以下行:
b. 重启MySQL服务:
c. 为远程用户授权:

5. 配置CentOS防火墙

如果您的CentOS系统启用了防火墙,需要开放3306端口:

6. 数据库和用户管理

登录MySQL并执行以下SQL命令创建数据库和用户:

7. 性能监控和调优

使用MySQL内置工具进行性能监控和调优:

远程连接安全性考虑

允许远程连接到MySQL数据库会增加潜在的安全风险。以下是一些增强安全性的建议:
  1. 使用强密码:确保所有远程用户都使用强密码。
  1. 限制连接IP:如果可能,限制特定IP地址或IP范围的访问:
    1. 使用SSL/TLS加密连接:配置MySQL使用SSL/TLS来加密客户端和服务器之间的通信。
    1. 定期审核用户权限:定期检查并移除不必要的远程访问权限。
    1. 使用VPN:考虑通过VPN访问数据库,而不是直接暴露数据库端口到公网。
    1. 启用和监控日志:确保启用了MySQL的通用查询日志和错误日志,并定期检查异常活动。

    部署方法对比

    特性
    Docker容器化
    传统安装
    部署速度
    快速
    相对较慢
    环境隔离
    资源利用
    轻量级
    直接使用系统资源
    可移植性
    性能
    轻微开销
    原生性能
    定制化
    受限
    全面控制
    维护成本
    较高

    结论

    选择MySQL的部署方法需要综合考虑多个因素,包括系统资源、性能需求、可维护性和扩展性。Docker容器化部署适合快速部署和环境一致性要求高的场景,而传统安装方法则更适合需要深度定制和直接系统访问的环境。在CentOS系统上,两种方法都有其特定的优势和适用场景。
    在配置MySQL远程访问时,无论选择Docker容器化还是传统安装方法,都需要在便利性和安全性之间取得平衡。Docker方法在配置远程访问时提供了更大的灵活性和隔离性,而传统方法则可能需要更多的系统级配置。无论选择哪种方法,都应该仔细考虑安全implications,并采取必要的措施来保护数据库免受未授权访问。
    最后,无论选择哪种方法,都需要对MySQL的配置、性能优化和安全性给予足够的重视,以确保数据库系统的稳定性和效率。定期的监控、维护和安全审计对于保持MySQL数据库的健康运行至关重要。