大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、MySQL多实例简介
MySQL多实例,简单地说,就是在一台服务器上同时开启多个不同的服务端口(如:3306、3307),同时运行多个MySQL服务进程,这些服务进程通过不同的socket监听来自不同的端口来提供服务;
多实例不仅节省物理主机成本,还有效提升了单台物理主机的CPU、磁盘I/O使用效率,而且还可以在多实例之间做部署数据库HA方案。
随着实例数量的增加,就面临统一管理问题,这样我们就需要用MySQL自带的管理程序 mysqld_multi 来进行管理...
二、MySQL启动流程
mysqld_multi #多实例管理程序
mysqld #MySQL最主要的启动方式,里面有很多参数;现在使用多实例就需要用新的mysql_safe 来启动mysql
mysql_safe #实则还是调用mysqld,并且会读取mysqld中的my.cnf配置参数来启动mysql,mysql_safe本身也有很多参数,但是这些参数会优先于my.cnf
my.cnf #mysql的配置文件
my.sock #mysql创建的sock文件,开启、停止、登陆和管理mysql都是通过这个接口文件
三、接下来基于mysql5.5.52版本,安装方法请看MySQL5.5.52编译安装,利用mysqld_multi配置一个多实例
1、停止单实例mysql数据库
2、禁止开机自启动
[root@db01 ~]# chkconfig mysqld off [root@db01 ~]# chkconfig --list mysqld mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭6:关闭3、创建多实例根目录/data/目录
[root@db01 ~]# mkdir -p /data/{3306,3307}/data4、拷贝mysqld_multi程序文件
[root@db01 ~]# cp /application/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi.server1)修改mysqld_multi.server路径配置
[root@db01 ~]# sed -i 's#basedir=/usr/local/mysql#basedir=/application/mysql#g' /etc/init.d/mysqld_multi.server [root@db01 ~]# sed -i 's#bindir=/usr/local/mysql/bin#bindir=/application/mysql/bin#g' /etc/init.d/mysqld_multi.server2)添加mysqld_multi用到的/etc/mysqld_multi.cnf配置文件
#这个模板文件可以用命令mysqld_multi --example导出来
5、配置MySQL多实例的文件权限
通过下面的命令授权mysql用户和用户组管理整个多实例的根目录/data
6、初始化MySQL多实例的数据库文件
(1)初始化MySQL数据库
cd /application/mysql/scripts/ <==注意和MySQL5.1的路径不同,MySQL5.1不在MySQL bin路径下了
3306实例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3306/data \
--user=mysql
3307实例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3307/data \
--user=mysql
提示:--basedir=/application/mysql为MySQL的安装路径,--datadir为不同的实例数据目录
操作过程:
7、启动多实例:
1)查看数据库状态
2)启动数据库
[root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf start 1,2 [root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running3)查看端口
[root@db01 ~]# ss -nlutp|grep 330 tcp LISTEN 0 50 *:3306 *:* users:(("mysqld",47045,10)) tcp LISTEN 0 50 *:3307 *:* users:(("mysqld",47041,10))8、停止数据库
[root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf stop 1,2 [root@db01 ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report Reporting MySQL servers MySQL server from group: mysqld1 is not running MySQL server from group: mysqld2 is not running9、登陆数据库
1)启动数据库
2)登录数据库
方法一:指定端口和主机IP,适合远程连接
方法二:指定socket登陆,适合在本机连接
mysql -S /data/3307/mysql.sock操作演示
方法一:指定端口和主机IP,适合远程连接
方法二:指定socket登陆,适合在本机连接
[root@db01 ~]# mysql -S /data/3307/mysql.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.52 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>到这里MySQL多实例就配置完成啦O(∩_∩)O~~!!!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。