技术知识库

MySQL多实例

一,MySQL多实例介绍及MySQL多实例的特点

1、什么是MySQL多实例?

   MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务。

2、MySQL多实例的特点有以下几点:

   1)、有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。

   2)、节约服务器资源

   3)、资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降。


二,MySQL多实例的安装配置

1、首先创建mysql用户和组:

[root@LVS_RS_104 ~]# groupadd mysql 
[root@LVS_RS_104 ~]# useradd -s /sbin/nologin -g mysql -M mysql

2、下载MySQL源码包并解压安装

 

[root@LVS_RS_104 ~]# wget https://www.landui.com/archives/mysql-5.1/mysql-5.1.62-linux-x86_64-glibc23.tar.gz 
[root@LVS_RS_104 ~]# tar zxvf mysql-5.1.62-linux-x86_64-glibc23.tar.gz
[root@LVS_RS_104 ~]# mv mysql-5.1.62-linux-x86_64-glibc23 mysql-5.1.62 
[root@LVS_RS_104 ~]# cd mysql-5.1.62 
[root@LVS_RS_104 mysql-5.1.62]# ./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug --with-pthread --with-extra-charsets=complex --with-readine --with-ssl --with-embedded-server --enable-local-infole --with-plugin=partition,innobase --with-plugin-PLUGIN --with-mysqld-ldflags=-all-static --with-client-ldfags=-all-static 
[root@LVS_RS_104 mysql-5.1.62]# make && make install

mysql下载时候具体地址可能变动,请根据实际情况进行更改

https://www.landui.com/archives/community/


3 mysql参数说明:

--prefix=/usr/local/mysql   #指定mysql的安装路径
--enable-assembler  #允许使用汇编模式(优化性能)
--enable-thread-safe-client  #以线程方式编译mysql
--with-mysqld-user=mysql  #指定mysql运行的系统的用户
--with-big-tables #支持大表,即使是32位的系统也能支持4G以上的表
--without-debug  #使用非debug模式
--with-pthread   #强制使用pthread线程库编译
--with-extra-charsets=complex   #mysql默认的字符集使用complex
--with-ssl    #支持ssl
--with-plugin=partition,innobase
--with-plugin-PLUGIN
--with-mysqld-ldflags=-all-static   #服务器使用静态库(优化性能)
--with-client-ldfags=-all-static    #客户端使用静态库(优化性能)

更多参数请看源码目录的INSTALL或者./configure --help

4、创建MySQL多实例的数据目录

 

[root@LVS_RS_104 mysql-5.1.62]# mkdir /usr/local/mysql/data/{3306,3307,3308}/data -p 
[root@LVS_RS_104 mysql-5.1.62]# tree /usr/local/mysql/data/ 
/usr/local/mysql/data/ 
├── 3306 
│   └── data 
├── 3307 
│   └── data 
└── 3308 
    └── data


5、创建MySQL多实例配置文件

这里和单实例配置不同。因为要配置多个配置文件要多份,我们可以通过vim命令来添加,如下

 

[root@LVS_RS_104 data]# vim /usr/local/mysql/data/3306/my.cnf 
[root@LVS_RS_104 data]# vim /usr/local/mysql/data/3307/my.cnf 
[root@LVS_RS_104 data]# vim /usr/local/mysql/data/3308/my.cnf

MySQL多实例的配置文件my.cnf和启动文件在附件,读者可以下载下来放到各实例的目录,启动文件需要把属组和属主改为mysql并添加执行权限,如下:

 

[root@LVS_RS_104 data]# chown mysql.mysql /usr/local/mysql/data/3306/mysql  
[root@LVS_RS_104 data]# chown mysql.mysql /usr/local/mysql/data/3307/mysql  
[root@LVS_RS_104 data]# chown mysql.mysql /usr/local/mysql/data/3308/mysql  
[root@LVS_RS_104 data]# chmod +x /usr/local/mysql/data/3306/mysql  
[root@LVS_RS_104 data]# chmod +x /usr/local/mysql/data/3307/mysql  
[root@LVS_RS_104 data]# chmod +x /usr/local/mysql/data/3308/mysql

6、初始化MySQL数据目录并添加mysql命令到全局路径

 

[root@LVS_RS_104 data]# echo 'export PATH=$PATH:/usr/local/mysql/bin/' >>/etc/profile 
[root@LVS_RS_104 data]# source /etc/profile 
[root@LVS_RS_104 data]# mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306/data/  
[root@LVS_RS_104 data]# mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307/data/ 
[root@LVS_RS_104 data]# mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3308/data/

7、启动MySQL多实例

[root@LVS_RS_104 3306]# ./mysql start 
Starting MySQL... 
[root@LVS_RS_104 3306]# ../3307/mysql start 
Starting MySQL... 
[root@LVS_RS_104 3306]# ../3308/mysql start 
Starting MySQL...

8、检查端口看看mysql是否启动成功


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: