MySQL多实例通过独立配置文件、数据目录和端口实现,依次准备配置文件、初始化数据目录、启动实例并可选配置systemd服务,最后按端口连接管理。

MySQL 多实例是指在同一台服务器上运行多个 MySQL 服务进程,每个实例使用不同的端口、数据目录和配置文件。通过合理配置,可以实现资源隔离、灵活管理。以下是配置 MySQL 多实例启动的详细方法。
每个 MySQL 实例需要独立的配置文件(my.cnf),避免端口和路径冲突。通常将配置文件放在不同目录中,例如:
示例配置(以 3306 实例为例):
[mysqld] port = 3306 socket = /tmp/mysql.sock pid-file = /data/mysql3306/mysqld.pid datadir = /data/mysql3306/data log-error = /data/mysql3306/logs/error.log server-id = 1
另一个实例(如 3307)需修改 port、socket、datadir 等参数,确保不冲突。
每个实例需要独立的数据目录,使用 mysqld --initialize 命令分别初始化:
mysqld --initialize \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/data/mysql3306/data \ --defaults-file=/data/mysql3306/my.cnf mysqld --initialize \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/data/mysql3307/data \ --defaults-file=/data/mysql3307/my.cnf
注意:初始化会生成临时密码,记录日志中的 root@localhost 密码。
使用 mysqld_safe 或直接调用 mysqld 启动每个实例:
mysqld_safe --defaults-file=/data/mysql3306/my.cnf & mysqld_safe --defaults-file=/data/mysql3307/my.cnf &
也可以使用绝对路径指定 MySQL 安装目录:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3306/my.cnf &
为方便管理,可为每个实例创建 systemd 服务文件。例如创建 /etc/systemd/system/mysql3306.service:
[Unit] Description=MySQL 3306 Instance After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql3306/my.cnf Restart=always [Install] WantedBy=multi-user.target
然后启用并启动服务:
systemctl daemon-reload systemctl enable mysql3306 systemctl start mysql3306
连接时需指定端口和 socket:
mysql -u root -p -h 127.0.0.1 -P 3306 mysql -u root -p -S /tmp/mysql.sock
不同实例使用不同端口即可区分。
基本上就这些。只要配置好独立的端口、数据目录和配置文件,MySQL 多实例启动并不复杂,但要注意权限、路径和端口冲突问题。
以上就是mysql启动命令如何配置多实例_mysql启动命令多实例启动配置教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号