什么是多实例
- 在一台服务器上运行
多个
数据库服务
为什么使用多实例
- 节约运维成本
- 提高硬件利用率
配置
1)安装软件
] yum -y install libaio
] useradd mysql #用户名必须为mysql
] tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz #注意软件版本,需要支持多实例功能
] mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
] vim /root/.bashrc
export PATH=$PATH:/usr/local/mysql/bin
] source /root/.bashrc
2)配置文件
] vim /etc/my.cnf #新建
[mysqld_multi] #启用多实例
mysqld=/usr/local/mysql/bin/mysqld_safe #指定进程文件
mysqladmin=/usr/local/mysql/bin/mysqladmin #指定管理命令
user=root #指定进程用户
[mysqld1] #实例进程名称,格式为mysqldX,X为数字编号
port=3307 #端口号
datadir=/dir1 #数据库目录
socket=/dir1/mysqld1.sock #指定socket文件
pid-file=/dir1/mysqld1.pid #指定pid文件
log-error=/dir1/mysqld1.log #指定错误日志文件
[mysqld2] #实例进程名称
port=3308 #端口号
datadir=/dir2 #数据库目录
socket=/dir2/mysqld2.sock #指定socket文件
pid-file=/dir2/mysqld2.pid #指定pid文件
log-error=/dir2/mysqld2.log #指定错误日志文件
] mkdir /dir1 /dir2
3)启动服务
] mysqld_multi start 1 #启动实例1,首次启动会初始化并将root初始密码输出到终端
] mysqld_multi --user=root --password=PASSWORD stop 实例编号 #停止实例
4)客户端访问
] mysql -uroot -p'PASSWORD' -S sock文件 #本机连接,首次连接需要使用alter user命令修改root@localhost密码
连接失败时:
检查配置文件/etc/my.cnf , 确认后:
] killall -9 mysqld #杀进程杀到报错
] rm -rf 数据库目录/* #删除数据库下的所有文件,使服务下次启动时能够重新初始化
] mysqld_multi start 实例编号 #启动服务并初始化,注意root初始密码
] mysql -uroot -p'PASSWORD' -S sock文件 #使用初始密码本机连接,使用alter user命令修改root@localhost密码
在客户端访问:
[root@client] mysql -h服务器ip -P实例端口 -uUSER -pPASSWORD