千家信息网

同一台机器上配置两个MySQL实例

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。原文链接: https://www.modb.pro/db/22741?cyn1.虚拟机准备1.1.
千家信息网最后更新 2026年11月02日同一台机器上配置两个MySQL实例摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。

原文链接: https://www.modb.pro/db/22741?cyn

1.虚拟机准备

1.1. VMware Workstation Pro 12.1

内存:建议至少2G
硬盘:建议至少40G,动态分配

1.2. 操作系统准备

操作系统为CentOS 6.5 64bit
IP:192.168.0.13
主机名:source

1.3. MySQL软件准备

mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

2.安装前系统环境配置调整

2.1. 关闭SELinux
2.2. 关闭系统防火墙
2.3. 调整I/O调度系统为deadline模式
2.4. swap分区的设置
2.5. 操作系统的限制
2.6. 关闭numa

此部分略,可参考之前发布的一篇文章来配置
centos6.5上安装mysql 5.7.20

3.MySQL安装规划

软件包目录:/opt/soft
MySQL家目录 /usr/local
MySQL数据目录 /data/mysql1 /data/mysql2
配置文件目录 /etc/my1.cnf /etc/my2.cnf
实例1端口 3306
实例2端口 3307

4.创建目录

mkdir -p /opt/soft
mkdir -p /data/mysql1
mkdir -p /data/mysql2

5.创建MySQL用户

useradd mysql1 -s /sbin/nologin
passwd mysql1

useradd mysql2 -s /sbin/nologin
passwd mysql2

-密码为oracle123

6.安装MySQL软件

cd /opt/soft

tar -xzf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64_1

cd /usr/local

cp -r mysql-5.7.20-linux-glibc2.12-x86_64_1 mysql-5.7.20-linux-glibc2.12-x86_64_2

ln -s mysql-5.7.20-linux-glibc2.12-x86_64_1 mysql1
ln -s mysql-5.7.20-linux-glibc2.12-x86_64_2 mysql2

chown -R mysql1:mysql1 /usr/local/mysql1
chown -R mysql2:mysql2 /usr/local/mysql2

chown -R mysql1:mysql1 /data/mysql1
chown -R mysql2:mysql2 /data/mysql2

7.编辑参数文件

vi /etc/my1.cnf

[client]
port = 3306
socket = /tmp/mysql1.sock

[mysql]
prompt="\u@db \R:\m:\s [\d]> "
no-auto-rehash

[mysqld]
user = mysql1
port = 3306
basedir = /usr/local/mysql1
datadir = /data/mysql1
socket = /tmp/mysql1.sock
pid-file= /tmp/mysql3306.pid


vi /etc/my2.cnf

[client]
port = 3307
socket = /tmp/mysql2.sock

[mysql]
prompt="\u@db \R:\m:\s [\d]> "
no-auto-rehash

[mysqld]
user = mysql2
port = 3307
basedir = /usr/local/mysql2
datadir = /data/mysql2
socket = /tmp/mysql2.sock
pid-file= /tmp/mysql3307.pid

说明:需要加socket参数,否则启动第二个实例报错,无法启动第二个实例。

8.mysql数据库初始化

cd /usr/local/mysql1/bin
./mysqld --initialize --user=mysql1 --basedir=/usr/local/mysql1 --datadir=/data/mysql1

cd /usr/local/mysql2/bin
./mysqld --initialize --user=mysql2 --basedir=/usr/local/mysql2 --datadir=/data/mysql2

9.修改登录密码

-跳过权限表,启动mysql实例
/usr/local/mysql1/bin/mysqld_safe --user=mysql1 --port=3306 --socket=/tmp/mysql1.sock --pid-file=/tmp/mysql3306.pid --basedir=/usr/local/mysql1 --datadir=/data/mysql1 --skip-grant-tables &

/usr/local/mysql2/bin/mysqld_safe --user=mysql2 --port=3307 --socket=/tmp/mysql2.sock --pid-file=/tmp/mysql3307.pid --basedir=/usr/local/mysql2 --datadir=/data/mysql2 --skip-grant-tables &

本地连接mysql实例
mysql -uroot -P 3306 --protocol=tcp -p
mysql -uroot -P 3307 --protocol=tcp -p
以-skip-grant-tables跳过权限表,启动mysql实例,登录连接数据库时,输入错误密码或者空密码,都可以登录mysql数据库。

use mysql
select Host,user,authentication_string,password_expired from user;
update user set password_expired='N' where user='root';
#修改root用户的密码为永不过期

update user set authentication_string=password('oracle123') where user='root';
#修改localhost对应root用户的密码为oracle123
flush privileges;

10.启动和关闭mysql实例

杀掉mysql进程,然后重启mysql实例
ps -ef|grep mysql
kill -9 进程号

-启动mysql实例
/usr/local/mysql1/bin/mysqld_safe --defaults-file=/etc/my1.cnf &
/usr/local/mysql2/bin/mysqld_safe --defaults-file=/etc/my2.cnf &

进程如下:

[root@source ~]# ps -ef|grep mysqlroot       6449   2826  0 18:09 pts/0    00:00:00 /bin/sh /usr/local/mysql1/bin/mysqld_safe --defaults-file=/etc/my1.cnfmysql1     6592   6449  3 18:09 pts/0    00:00:00 /usr/local/mysql1/bin/mysqld --defaults-file=/etc/my1.cnf --basedir=/usr/local/mysql1 --datadir=/data/mysql1 --plugin-dir=/usr/local/mysql1/lib/plugin --user=mysql1 --log-error=source.err --pid-file=/tmp/mysql3306.pid --socket=/tmp/mysql1.sock --port=3306root       6622   2826  0 18:09 pts/0    00:00:00 /bin/sh /usr/local/mysql2/bin/mysqld_safe --defaults-file=/etc/my2.cnfmysql2     6765   6622  4 18:09 pts/0    00:00:00 /usr/local/mysql2/bin/mysqld --defaults-file=/etc/my2.cnf --basedir=/usr/local/mysql2 --datadir=/data/mysql2 --plugin-dir=/usr/local/mysql2/lib/plugin --user=mysql2 --log-error=source.err --pid-file=/tmp/mysql3307.pid --socket=/tmp/mysql2.sock --port=3307root       6797   2826  0 18:09 pts/0    00:00:00 grep mysql[root@source ~]#

-关闭mysql实例
/usr/local/mysql1/bin/mysqladmin --defaults-file=/etc/my1.cnf -uroot -poracle123 shutdown
/usr/local/mysql2/bin/mysqladmin --defaults-file=/etc/my2.cnf -uroot -poracle123 shutdown

11.创建数据库帐号

分别在两个实例都创建如下用户:
grant all privileges on . to 'root'@'%' identified by 'oracle123';
flush privileges;

12.连接mysql实例

本地:
mysql -uroot -P 3306 --protocol=tcp -p
mysql -uroot -P 3307 --protocol=tcp -p

远程:
mysql -h292.168.0.13 -P 3306 -uroot -p
mysql -h292.168.0.13 -P 3307 -uroot -p

实例 密码 系统 数据 目录 数据库 用户 配置 操作系统 软件 进程 准备 登录 参数 建议 文件 权限 环境 端口 调整 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 互联网属科技 科技互联网政务服务 深圳互联网络科技有限公司 为想互联网科技 互联网科技logo 汉立互联网科技有限公司联系电话 上海电发互联网科技有限公司 互联网实体化科技化 天速互联网络科技有限公司 佳云科技和互联网广告 南平创想时代互联网科技有限公司 深圳市优智互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 互联网金融科技展 小米互联网科技园入驻 山东大美朱楼互联网科技有限公司 九思连强互联网电子科技有限公司 恒生互联网科技趋势 广州全民伙伴互联网科技有限公司 互联网医疗科技 互联网的科技创新 深圳互联网络科技有限公司 天下捷融互联网科技 互联网科技项目计划书材料类 彤创互联网科技有限公司 科技类公司包括互联网吗 怎样加入科技互联网 广州千川互联网科技有限公司 中国新注册互联网科技
0