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

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道