web123456

MySQL Multiple Instance Installation

System: centos7.0

Configuration plan: N configuration files (,cnf) + N startup program scripts.

Why install multiple instances: Better utilize server resources.

What is an instance: A simple understanding is that a port is an instance, and the instance is independent but occupies the public hardware resources of the server.

Description: This blog is adapted from the second part of the 26th video of the old boy's mysqlDBA advanced operation and maintenance system course.

usecmake (compilation and installation) installation explains multiple instances. This article has installed a total of 3306 and 3307 instances.

operate:

1. Install mysql dependency package:
yum install ncurses-devel -y
yum install libaio-devel -y

2. Create users and groups:
   groupadd mysql
   useradd mysql -s /sbin/nologin -M -g mysql

Obtain mysql software:
   rz -y
  
3. Install mysql software:
1. Decompression: tar xf mysql-5.5.
2. Generate a soft connection/application/mysql without version number, that is, the mysql installation path:
     ln -s /application/mysql-5.5.32/ /application/mysql
 
4. Delete the previous single instance installation:
   pkill mysqld
   ps -ef|grep mysql
   rm -f /etc//mysqld
Equivalent to: install a single instance of mysql to establish a soft connection
   make && make install
   ln -s /application/mysql-5.5.32/ /application/mysql


5. Create a multi-instance directory:
   mkdir -p /data/{3306,3307}/data
   tree /data
/data/-->Multi-instance total directory
├── 3306-->3306 instance directory
│ └── data-->3306 instance data file directory
└── 3307-->3307 instance directory
└── data-->3307 instance data file directory


6. Installation configuration:
rz -y (upload locally to the server,

Download link:/s/1gfzNsQZ Password: qcav)
uzip (in the /home/test/tools directory)
Copy mysql multi-instance configuration file:
cp data/3306/ /data/3306 (Copy the files under /home/test/tools/data/3306 to the directory /data/3306)
cp data/3307/  /data/3307
Copy the mysql multi-instance startup file:
cp data/3306/mysql /data/3306 (Copy the mysql startup script file under home/test/tools/data/3306 to the /data/3306 directory)
cp data/3307/mysql /data/3307 

MySQL multi-instance configuration file:                                                                                                                                                                   �
   port=3306 port=3307
   socket= /data/3306/ socket= /data/3307/
   datadir=/data /3306/data datadir=/data /3307/data
   long_query_time=1 long_query_time=1
   #long-error= /data/3306/ #long-error= /data/3307/
   #long-slow-queries= /data/3306/ #long-slow-queries= /data/3307/
   pid-file= /data/3306/               pid-file= /data/3307/
   log-bin= /data/3306/mysql-bin log-bin= /data/3307/mysql-bin
   relay-log= /data/3306/relay-bin relay-log= /data/3307/relay-bin
   relay-log-info-file =/data/3306/ relay-log-info-file =/data/3307/
   server-id=1 server-id=1
   long-error= /data/3306/mysql_test3306.err long-error= /data/3307/mysql_test3307.err
   
The essence of mysql multi-instance startup service:
   mysqld_safe --defaults-file=/data/3306/ 2>&1 > /dev/null &
   mysqld_safe --defaults-file=/data/3307/ 2>&1 > /dev/null &
MySQL multi-instance stops service essence:
mysqladmin -u root (user name) -password -S /data/3306/ shutdown
mysqladmin -u root (user name) -password -S /data/3307/ shutdown