一台服务器安装2个mysql

需配置不同端口、数据目录及my.cnf文件,并以不同服务名启动(如mysqld_safe或systemctl),确保两实例独立

安装前准备

  1. 操作系统环境:确保服务器已安装Linux(如CentOS/Ubuntu)或Windows Server。
  2. 下载MySQL:从官网下载对应系统的MySQL安装包(建议使用相同版本)。
  3. 备份数据:如果已有MySQL实例,需提前备份数据。

Linux系统下安装步骤

安装第一个MySQL实例(默认安装)

# 解压安装包并执行安装脚本
tar -xvf mysql-8.0.x-linux-glibc2.17-x86_64.tar.xz
cd mysql-8.0.x-linux-glibc2.17-x86_64
sudo ./bin/mysqld --initialize --user=mysql
# 启动默认实例并设置开机自启
sudo ./bin/mysqld_safe --daemonize

部署第二个MySQL实例

# 复制整个MySQL目录到新路径(如 /usr/local/mysql2)
sudo cp -r mysql-8.0.x-linux-glibc2.17-x86_64 /usr/local/mysql2
# 初始化第二个实例的数据目录
sudo /usr/local/mysql2/bin/mysqld --initialize --basedir=/usr/local/mysql2 --datadir=/usr/local/mysql2/data --user=mysql
# 修改第二个实例的配置文件(/etc/my.cnf 或自定义路径)
sudo nano /etc/my2.cnf

配置第二个实例的 my.cnf

参数 说明
port 3307 避免与默认端口3306冲突
socket /usr/local/mysql2/mysql.sock 独立套接字文件
datadir /usr/local/mysql2/data 独立数据存储目录
log_error /usr/local/mysql2/data/error.log 独立错误日志

启动与管理实例

启动第二个实例

# 后台启动第二个实例
sudo /usr/local/mysql2/bin/mysqld_safe --defaults-file=/etc/my2.cnf --daemonize

验证两个实例状态

# 查看默认实例状态
sudo /usr/local/mysql/bin/mysqladmin -u root -p status
# 查看第二个实例状态
sudo /usr/local/mysql2/bin/mysqladmin -u root -p -P 3307 status

设置开机自启(系统d服务)

# 默认实例服务配置
sudo cp /usr/lib/systemd/system/mysqld.service /etc/systemd/system/mysqld.service
# 第二个实例服务配置(修改端口、套接字等)
sudo cp /etc/systemd/system/mysqld.service /etc/systemd/system/mysqld2.service
sudo sed -i 's/3306/3307/g;s/mysql.sock/mysql2.sock/g' /etc/systemd/system/mysqld2.service
# 启用并启动服务
sudo systemctl enable mysqld2
sudo systemctl start mysqld2

连接与操作实例

操作场景 命令示例
连接默认实例 mysql -u root -p -S /usr/local/mysql/mysql.sock
连接第二个实例 mysql -u root -p -P 3307 -h 127.0.0.1
指定客户端工具路径 /usr/local/mysql2/bin/mysql -u root -p

常见问题与解决

问题 解决方案
端口冲突导致无法启动 检查netstat -tulpn,修改my.cnf中的端口号
数据目录权限不足 chown -R mysql:mysql /usr/local/mysql2/data
忘记第二个实例密码 删除/usr/local/mysql2/data/auto.cnf后重启实例

相关问题与解答

问题1:如何彻底卸载其中一个MySQL实例?

解答

一台服务器安装2个mysql

  1. 停止目标实例的服务(如systemctl stop mysqld2)。
  2. 删除数据目录(如rm -rf /usr/local/mysql2/data)。
  3. 卸载程序文件(如rm -rf /usr/local/mysql2)。
  4. 删除系统服务文件(如rm /etc/systemd/system/mysqld2.service)。
  5. 执行systemctl daemon-reload并重启服务器。

问题2:如何迁移第二个实例的数据到默认实例?

解答

一台服务器安装2个mysql

  1. 停机两个实例,避免数据写入。
  2. 将第二个实例的数据目录(/usr/local/mysql2/data)备份为SQL文件:
    /usr/local/mysql2/bin/mysqldump -u root -p --all-databases > backup.sql
  3. 将备份文件导入默认实例:
    /usr/local/mysql/bin/mysql -u root -p < backup.sql
  4. 验证数据一致性后

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/67358.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月18日 17:42
下一篇 2025年7月18日 17:46

相关推荐

  • Python如何访问服务器文件

    Python可通过多种协议(如SSH、FTP、SMB)访问服务器文件,常用库包括paramiko(SSH)、ftplib(FTP)和pysmb(SMB),实现文件上传、下载及管理操作,需注意身份验证与网络连接安全。

    2025年6月15日
    000
  • 如何高效搭建NNTP虚拟服务器?

    NNTP虚拟服务器是一种基于网络新闻传输协议(NNTP)的软件服务实例,通常运行在物理服务器或虚拟化平台上,它允许在单台物理主机上创建并管理多个逻辑上独立的新闻服务器实例,每个实例可单独配置并托管不同的新闻组,实现资源共享与高效管理。

    2025年6月26日
    000
  • 刀片服务器真的省钱吗?

    刀片服务器技术交流社区,专注于高密度服务器硬件、集群部署、虚拟化应用及运维管理,分享配置经验、性能优化、故障排查技巧,探讨行业趋势与解决方案,助力用户高效构建与维护数据中心。

    2025年7月2日
    000
  • 扬天服务器

    天服务器是联想旗下产品,具备高性能、高可靠性及易管理等特点,适用于企业级

    2025年7月12日
    100
  • 惠普服务器数据丢失如何紧急恢复

    惠普服务器数据恢复服务专注于解决因硬件故障、逻辑错误、意外删除、病毒攻击或自然灾害导致的服务器数据丢失问题,通过运用专业技术与工具,工程师可对故障硬盘/阵列进行深度分析与修复,最大限度恢复丢失的关键业务数据,力求保障企业运营连续性与数据安全。

    2025年6月21日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN