linux中如何开启多个mysql进城并且单独设置密码和端口

在 Linux 系统中,默认情况下 MySQL(或 MariaDB,一个流行的 MySQL 分支)不直接支持在同一台机器上运行多个 MySQL 实例,每个实例使用不同的端口和独立的密码系统。但是,你可以通过配置多个 MySQL 实例(也称为多实例)来实现这一需求。这通常涉及到为每个实例配置不同的端口、数据目录、配置文件和可能的用户权限。

以下是配置多个 MySQL 实例的基本步骤:

1. 准备工作

确保你有一个可用的 MySQL 安装。本指南假设你使用的是 MySQL,但如果你使用的是 MariaDB,步骤也非常相似。

2. 创建新的数据目录

为每个 MySQL 实例创建一个新的数据目录:

sudo mkdir -p /data/mysql1 /data/mysql2
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2

这里 /data/mysql1 和 /data/mysql2 是两个不同实例的数据目录。

3. 复制并修改配置文件

MySQL 的默认配置文件通常是 /etc/my.cnf(或 /etc/mysql/my.cnf,具体取决于你的发行版)。你需要为每个实例创建一个新的配置文件。

  • 复制配置文件模板(如果不存在,可以从默认配置中创建):
sudo cp /etc/my.cnf /etc/mysql1.cnf
sudo cp /etc/my.cnf /etc/mysql2.cnf
  • 修改每个配置文件的以下部分:

    • [mysqld] 部分下设置 datadir 为新创建的数据目录(如 /data/mysql1 或 /data/mysql2)。
    • 设置不同的 port(例如,第一个实例使用 3306,第二个实例使用 3307)。
    • 可能还需要设置 socket 路径,确保它们是唯一的。
    • (可选)设置 user 和 log_error 等其他选项,以确保实例独立运行。

4. 初始化数据目录(如果尚未初始化)

对于新的 MySQL 实例,你需要初始化数据目录。这通常涉及到运行 mysqld --initialize 或 mysql_install_db(取决于你的 MySQL 版本)。注意,这可能会覆盖任何现有的数据。

sudo mysqld --initialize --user=mysql --datadir=/data/mysql1
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2

5. 启动 MySQL 实例

你需要为每个实例编写启动脚本或使用 systemd 单元文件来管理它们。这通常比较复杂,需要根据你的具体需求和系统环境来定制。

一个简化的方法是使用 mysqld_safe 或直接在命令行中运行 mysqld,但这并不适合生产环境。

6. 设置密码和权限

每个实例在初始化后都会有默认的 root 密码(MySQL 5.7.6 及更高版本)。你需要为每个实例设置独立的密码和用户权限。

  • 登录到每个实例(使用 --socket 和 --port 选项)。
  • 使用 ALTER USER 语句设置 root 密码。
  • 创建新用户并授权。

7. 维护和监控

确保你有适当的监控和备份策略来维护你的多个 MySQL 实例。

注意

  • 以上步骤是一个高级概览,并且可能需要根据你的具体环境进行调整。
  • 运行多个 MySQL 实例可能会增加系统的复杂性和资源消耗。
  • 确保你的系统防火墙和网络配置允许从适当的端口访问每个实例。

相关推荐

  1. linux如何设置redis进程并且设置独立密码

    2024-07-12 23:06:03       26 阅读
  2. git如何配置远程仓库,并且进行切换

    2024-07-12 23:06:03       52 阅读
  3. 如何linux安装版本的python

    2024-07-12 23:06:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 23:06:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 23:06:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 23:06:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 23:06:03       69 阅读

热门阅读

  1. c#中将数据库中的文件导出为csv、xml文件的demo

    2024-07-12 23:06:03       21 阅读
  2. ceph gps backfill_toofull

    2024-07-12 23:06:03       18 阅读
  3. [NeetCode 150] Products of Array Discluding Self

    2024-07-12 23:06:03       23 阅读
  4. NCNN源码学习(1):Mat详解

    2024-07-12 23:06:03       19 阅读
  5. Spring Boot对接大模型:实战价值与技巧

    2024-07-12 23:06:03       20 阅读
  6. 算法学习记录3

    2024-07-12 23:06:03       21 阅读
  7. linux的CUDA、torch和驱动GPU驱动的对应问题

    2024-07-12 23:06:03       19 阅读
  8. 递归函数遍历格式化字典

    2024-07-12 23:06:03       22 阅读