三、linux-mysql mysql的多实例
1.什么是mysql多实例
一个机器开通多个端口,运行多个mysql服务器进程,这些服务进程通过不同的socket监听不同的服务端口提供各自的服务,但它们共用一台mysql安装程序,使用不同的my.cnf配置文件、启动程序,数据文件。逻辑上多实例是独立的。
2.多实例的作用和问题
有效利用服务器资源(服务器占用60%以上)、节约服务器资源,但当某个服务实例并发很高或者有慢查询时,整体服务提供的质量下降
3.应用场景
1)质量不想下降,但是资金紧张,比如3个服务器,可以部署6到九个实例
2)并发不是很大的业务
3)门户网站应用mysql实例场景多
4.多实例的配置方案
1)多个配置文件和多个启动程序 2)单一配置方式:my.cnf (耦合性太高)
5.安装MySQL多实例
1)依赖包
yum install ncurses-devek -y
yum install libaio-devel -y
2) mkdir -p /data/{3306,3307}/data 将修改好的配置文件放置到这里my.cnf 和mysql脚本
3)授权 /data/{3306,3307}/data 为mysql组和用户:chown
4) 进行初始化:/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data/ --user=mysql
提示:其实这里自己一直想不同,初始化是建库需要组织系统表关系结构,这个好理解,需要用到配置文件这个也好理解,但是在默认情况下应该是查看/etc/my.cnf,在查看当前的datadir同目录下的配置文件,如果两者都存在,那么以默认的配置文件优先级最好。
5) ../mysql start 进行启动
6) 本地登陆命令: mysql -s /data/3306/mysql.sock mysql -s /data/3307/mysql.sock
7)多实例间的跳转为:system : system mysql -S /data/3307/mysql.sock
8) 停止命令:/data/3306/mysql stop /data/3307/mysql stop
9)添加密码: mysqladmin -u root -S /data/330{6,7}/mysql.sock password 'oldboy124'
新版本MySQL(8.0以上)不支持使用mysqladmin -uroot -p123456 password 654321;
或“set password for root@localhost = password('654321');”
来修改密码。
alter user'root'@'localhost' identified by '新密码'
10)show databases;
6.可以根据上述方法再创建一个实例3308,这里已经创建,一步一来就ok了,结果如下,共3个进程:
7.本地登陆命令: mysql -s /data/3306/mysql.sock mysql -s /data/3307/mysql.sock
远程登陆命令是:mysql -uroot -p'oldboy124' '-h 192.168.0.102' -P 3307