多实例就是在一台服务器上运行多个mysql
1、安装软件包:
yum –y install libaio #相关依赖
useradd mysql #创建mysql用户
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz #解压完毕以后直接可以使用
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql #移动文件位置
PATH=/usr/local/mysql/bin:$PATH #把服务放入环境变量中,方便使用命令
#永久修改环境变量
vim /etc/bashrc
export PATH=/usr/local/mysql/bin:$PATH
2、分析:
对于一个数据库服务来说,要有自己的数据库文件目录,要有自己的日志文件,
要有自己的端口,要有自己的pid文件,要有自己的socket文件(用于传递数据)
3、配置:
vim /etc/my.cnf #这个文件需要手动创建,内容如下
[mysqld_mutli] #启动多实例
mysqld=/usr/local/mysql/bin/mysql_safe #指定进程文件
mysqladmin=/usr/local/mysql/bin/mysqladmin #管理命令
user=root #启动多实例的用户
[mysqld1] #mysql实例
datadir=/mysql/dir1 #数据库文件目录
port=3307 #端口号
socket=/mysql/dir1/mysql1.sock #socket文件
log-error=/mysql/dir1/mysql1.err #错误日志
pid-file=/mysql/dir/mysql1.pid #进程号文件pid
[mysqld2] #mysql实例
datadir=/mysql/dir2 #数据库文件目录
port=3308 #端口号
socket=/mysql/dir2/mysql2.sock #socket文件
log-error=/mysql/dir2/mysql2.err #错误日志
pid-file=/mysql/dir/mysql2.pid #进程号文件pid
3、创建数据库目录:
mkdir /mysql/dir1
mkdir /mysql/dir2
4、启动服务:
mysql_multi start 1 #这个1是实例编号,表示的是mysqld1这个实例
# 第一次启动会初始化,自动在/mysql/dir1/下创建一系列需要的文件
# root用户的初始化密码也会在初始化的时候显示出来
5、本机使用:
mysql -uroot -pxxxxxx -S /mysql/dir1/mysql1.sock #需要指明sock文件
mysql> alter user root@'localhost' identified by '123456' #修改初始密码
6、停止服务:
mysql_multi --user=root --password=123456 -S 1 #关闭实例编号为1的mysql实例
5、实例的使用:(和mysql使用方法一样)
①开启binlog日志:
vim /etc/my.cnf
[mysqld1]
server_id=1
log_bin
....
②用户授权:
grant all on *.* to user123@'%' identified by '123456'
③远程连接:
mysql -h 192.168.4.55 -P3307 -uuser123 -p123456
写总结的第四十天!!!