概念了解
什么是多实例?
在一台物理主机上允许多个数据库服务
为什么要使用多实例
节约成本
提高硬件利用率
由于此服务于版本有关,此次选择了mysql-5.7.20版本的数据库
mysql-5.7.20
55 yum -y install libaio
安装环境包
56 useradd mysql
创建一个mysql用户 58 mv mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql
将目录内的东西移动到/usr/local/mysql目录下 59 PATH=/usr/local/mysql/bin:$PATH
配置环境变量 61 vim /etc/bashrc
PATH=/usr/local/mysql/bin:$PATH
在文件中添加环境变量
主配置文件:
因是实例,所有每个实例都要有独立的:数据库目录、端口、socket文件、pid文件、错误日志文件
/etc/my.cnf //如若存在这个文件,直接删掉。然后重新创建即可
[mysqld_multi] //启用多实例 mysqld=/usr/local/mysql/bin/mysqld_safe //指定进程文件路径 mysqladmin=/usr/local/mysql/bin/mysqladmin //指定管理命令路径 user=root //指定进程用户 [mysql1] //实例京城名称 port = 3307 //端口号 datadir = /dir1 //数据库主目录,需自己创建 socket = /dir1/mysql.sock //指定sock文件的路径和名称 pid-file = /dir1/mysqld.pid //进程pid号文件位置 log-error = /dir1/mysqld.err //错误日志位置 [mysql2] port = 3308 datadir = /dir2 socket = /dir2/mysql.sock pid-file = /dir2/mysqld.pid log-error = /dir2/mysqld.err
管理多实例
停止服务(首次启动服务会创建root登陆初始密码)
mysqld_multi start 1 //启动实例编号
停止服务
mysqld_multi --user=root --password=密码 stop 实例编号
mysql服务自己连接自己的时候,通过socket文件建立连接
启动mysqld服务时 会自动创建socket文件,停止mysqld服务时,会自动删除文件
[root@host58 ~]# mysqld_multi start 1 //所以要认为的启动停止的服务
如若修好坏掉的服务器后,先停止管理服务
再管理服务文件内写入修复的实例服务器即可
]#
再添加实例使其运行并存储数据
在主配置文件里添加如下内容
]# vim /etc/my.cnf [mysqld3] datadir=/dir3 port=3309 log-error=/dir3/mysqld3.err pid-file=/dir3/mysqld3.pid socket=/dir3/mysqld3.sock
实例启动失败的配置步骤:
1 检查/etc/my.cnf文件中 实例配置
2 pkill -9 mysqld
3 rm -rf 实例对应的数据库目录
4 再次执行启动实例的命令 mysqld_multi start 实例编号