在阿里云Ubuntu上安装两个MySQL实例的方法
在阿里云Ubuntu服务器上安装并运行两个独立的MySQL实例是可行的,以下是详细步骤:
方法一:使用不同的端口和配置文件
-
安装第一个MySQL实例(默认安装)
sudo apt update sudo apt install mysql-server -
配置第一个实例
- 默认配置文件在
/etc/mysql/my.cnf - 默认数据目录
/var/lib/mysql - 默认端口3306
- 默认配置文件在
-
安装第二个MySQL实例
sudo mkdir -p /var/lib/mysql2 sudo chown mysql:mysql /var/lib/mysql2 sudo cp -R /etc/mysql /etc/mysql2 -
配置第二个实例
- 编辑新配置文件
/etc/mysql2/my.cnf,修改以下参数:[mysqld] port = 3307 datadir = /var/lib/mysql2 socket = /var/run/mysqld/mysqld2.sock pid-file = /var/run/mysqld/mysqld2.pid log-error = /var/log/mysql/error2.log
- 编辑新配置文件
-
初始化第二个实例
sudo mysqld --defaults-file=/etc/mysql2/my.cnf --initialize --user=mysql -
启动第二个实例
sudo mysqld_safe --defaults-file=/etc/mysql2/my.cnf &
方法二:使用MySQL多实例功能
-
安装MySQL
sudo apt install mysql-server -
创建第二个实例的目录
sudo mkdir -p /var/lib/mysql2 sudo chown mysql:mysql /var/lib/mysql2 -
初始化第二个实例
sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql2 -
创建第二个实例的配置文件
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld2.cnf -
修改第二个实例配置
- 编辑
/etc/mysql/mysql.conf.d/mysqld2.cnf,修改:[mysqld] port = 3307 datadir = /var/lib/mysql2 socket = /var/run/mysqld/mysqld2.sock pid-file = /var/run/mysqld/mysqld2.pid
- 编辑
-
创建systemd服务文件
sudo cp /lib/systemd/system/mysql.service /lib/systemd/system/mysql2.service- 修改
/lib/systemd/system/mysql2.service:ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/mysql.conf.d/mysqld2.cnf
- 修改
-
启动第二个实例
sudo systemctl daemon-reload sudo systemctl start mysql2
连接不同实例
-
第一个实例(默认):
mysql -u root -p -
第二个实例:
mysql -u root -p -P 3307 -S /var/run/mysqld/mysqld2.sock
注意事项
- 确保防火墙开放了第二个实例的端口(如3307)
- 每个实例需要独立设置root密码
- 资源消耗会加倍,确保服务器有足够内存
- 阿里云安全组需要配置允许第二个端口的访问
通过以上方法,您可以在阿里云Ubuntu服务器上成功运行两个独立的MySQL实例。
云服务器