插件窝 干货文章 mysql 和 mariadb 可以共存吗

mysql 和 mariadb 可以共存吗

MariaDB MySQL 端口 共存 989    来源:    2025-03-28

MySQL 和 MariaDB 共存分析

MySQL 和 MariaDB 可以在同一台服务器上共存,但需要仔细配置以避免冲突。以下是关键考虑因素和实现方案:

共存可行性

  1. 端口冲突:默认都使用3306端口,需要为其中一个修改端口
  2. 服务名称:需要区分服务名称(mysql vs mariadb)
  3. 数据目录:必须使用不同的数据存储目录
  4. 客户端工具:mysql/mariadb客户端命令可能冲突

实现方案

方案1:使用不同端口(推荐)

  1. 安装MySQL和MariaDB
  2. 修改其中一个的配置文件:

    • MySQL: /etc/my.cnf/etc/mysql/my.cnf
    • MariaDB: /etc/my.cnf.d/server.cnf

    修改内容示例(以修改MariaDB为例):

    [mysqld]
    port = 3307
    socket = /var/lib/mysql/mariadb.sock
    datadir = /var/lib/mariadb
    
  3. 确保服务使用不同的数据目录

方案2:使用Docker容器

# 运行MySQL容器
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql

# 运行MariaDB容器
docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3307:3306 -d mariadb

连接方式

连接时指定不同端口:

# 连接MySQL(默认3306)
mysql -u root -p

# 连接MariaDB(假设端口3307)
mysql -u root -p -P 3307

注意事项

  1. 资源占用:两个数据库服务会消耗更多内存和CPU
  2. 维护复杂度:需要管理两套数据库系统
  3. 客户端工具:可能需要指定完整路径(如/usr/bin/mysql vs /usr/bin/mariadb)
  4. 版本兼容性:某些工具可能不兼容两个不同版本的协议

结论

MySQL和MariaDB可以共存,但建议仅在测试或特殊需求场景下这样做。生产环境通常建议选择其中一种以避免不必要的复杂性。