MySQL多实例

◇◆丶佛笑我妖孽 提交于 2020-01-10 00:41:11

什么是多实例

  • 在一台服务器上运行多个数据库服务

为什么使用多实例

  • 节约运维成本
  • 提高硬件利用率

配置

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密码
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!