Linux系统双MySQL数据库安装指南
linux下安装两个mysql数据库

首页 2025-07-22 03:13:22



在Linux下安装两个MySQL数据库:深度解析与实战指南 在数据处理与管理领域,MySQL作为一款开源的关系型数据库管理系统(RDBMS),凭借其高性能、稳定性和广泛的社区支持,早已成为众多企业和开发者的首选

    然而,在某些特定场景下,比如测试与生产环境分离、多版本并行测试或复杂的数据隔离需求,我们可能需要在同一台Linux服务器上安装并运行两个MySQL数据库实例

    这一需求看似复杂,实则通过合理的规划与配置,完全可以轻松实现

    本文将详细介绍如何在Linux环境下安装并配置两个MySQL数据库实例,确保它们互不干扰、稳定运行

     一、准备工作 1. 系统环境 本文基于Ubuntu20.04 LTS进行演示,但大部分步骤同样适用于其他Linux发行版,如CentOS、Debian等,只需注意包管理工具(apt、yum等)和路径的差异

     2. 用户权限 确保你拥有root用户权限或以sudo权限执行命令,因为安装MySQL和配置服务通常需要较高权限

     3. 资源规划 在正式安装前,合理规划磁盘空间、内存和CPU资源,确保系统能够支持两个MySQL实例的运行

    同时,为避免端口冲突,需为每个实例分配不同的端口号

     二、安装第一个MySQL实例 1. 更新软件包列表并安装MySQL bash sudo apt update sudo apt install mysql-server 安装过程中,系统会提示设置root密码和其他安全选项,按照提示完成即可

     2. 启动并检查MySQL服务 bash sudo systemctl start mysql sudo systemctl status mysql 确保MySQL服务已启动并处于活跃状态

     三、安装并配置第二个MySQL实例 1. 创建新的MySQL数据目录 为第二个MySQL实例创建一个新的数据目录,例如`/var/lib/mysql2`: bash sudo mkdir -p /var/lib/mysql2 sudo chown -R mysql:mysql /var/lib/mysql2 2.复制MySQL配置文件并修改 复制默认的MySQL配置文件到新的位置,并进行必要的修改

    假设默认配置文件位于`/etc/mysql/mysql.conf.d/mysqld.cnf`: bash sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql2.conf.d/mysqld2.cnf 编辑新配置文件`mysqld2.cnf`,进行以下关键修改: -`【mysqld】`部分: -`port =3307`(或其他非3306的端口) -`datadir = /var/lib/mysql2` -`socket = /var/run/mysqld/mysqld2.sock` -`pid-file = /var/run/mysqld/mysqld2.pid` - 为避免混淆,可以为日志文件指定不同的路径或文件名,如`log-error = /var/log/mysql2/error.log`(需先创建目录并设置权限) 3.初始化第二个MySQL实例 使用`mysqld --initialize`命令初始化新的数据目录,注意指定配置文件: bash sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql2 --basedir=/usr --config-file=/etc/mysql/mysql2.conf.d/mysqld2.cnf 4. 创建MySQL2服务单元文件 为了管理第二个MySQL实例,需要创建一个新的systemd服务单元文件,例如`/etc/systemd/system/mysql2.service`: ini 【Unit】 Description=MySQL Server2 After=network.target After=syslog.target 【Service】 User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/mysql2.conf.d/mysqld2.cnf PIDFile=/var/run/mysqld/mysqld2.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 5. 启动并检查MySQL2服务 bash sudo systemctl daemon-reload sudo systemctl start mysql2 sudo systemctl status mysql2 确保MySQL2服务已启动并处于活跃状态

     四、安全性配置与测试 1. 设置root密码(如果未在安装时设置) 对于每个MySQL实例,都需要单独设置root密码

    对于第一个实例,可以使用`mysql_secure_installation`命令;对于第二个实例,由于不能直接使用该命令指定端口,需要通过MySQL客户端手动设置: bash mysql -u root -p -S /var/run/mysqld/mysqld2.sock -e ALTER USER root@localhost IDENTIFIED BY new_password; 2. 创建测试数据库和用户 在两个MySQL实例中分别创建测试数据库和用户,验证多实例配置的有效性

     bash 在第一个实例中 mysql -u root -p -e CREATE DATABASE testdb1; CREATE USER testuser1@localhost IDENTIFIED BY password; GRANT ALL PRIVILEGES ON testdb1- . TO testuser1@localhost; 在第二个实例中 mysql -u root -p -S /var/run/mysqld/mysqld2.sock -e CREATE DATABASE testdb2; CREATE USER test

nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密