1. Preparations before installation
Before installing multiple instances of MySQL, the following preparations are required:
Prepare multiple MySQL installation packages. You can download the version suitable for your environment from the MySQL official website: https://dev.mysql.com/downloads/
Prepare multiple MySQL data directories. You can create different directories to support different MySQL instances, such as: /data/mysql1, /data/mysql2, etc.
For each MySQL instance, configure an independent MySQL user, which has the corresponding MySQL installation path and data directory permissions.
2. Install multiple MySQL instances based on binary packages
The following are the steps to install multiple MySQL instances based on binary packages:
Extract the MySQL installation package and rename it
After decompressing multiple MySQL installation packages, you can rename them to different names for easy distinction. For example: mysql1, mysql2, etc.
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2
Initialize data directory
After initializing using the mysql_install_db command, each MySQL instance must have its own independent data directory. The following are the commands to initialize mysql1 and mysql2 instances:
$ cd mysql1
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir=/data /mysql1
$ cd ../mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2
Install MySQL service
For each MySQL instance, you need to use the mysqld_safe command to install the MySQL service. The following is the command to install mysql1 and mysql2 instances:
$ cp support-files/mysql.server /etc/init.d/mysql1
$ cp support-files/mysql.server /etc/init.d/mysql2
$ chmod x /etc/init.d /mysql1
$ chmod x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start
Configure MySQL instance
For each MySQL instance, an independent configuration file my.cnf is required. You can create a my in the MySQL installation directory. .cnf file, the following is an example of my.cnf file:
[mysqld]
datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error=/data/mysql1/mysql.err
pid-file=/share/tmp/mysql1.pid
[mysqld2]
datadir=/data/mysql2
socket=/share/tmp/mysql2.sock
port = 3307
user=mysql
log-error=/data /mysql2/mysql.err
pid-file=/share/tmp/mysql2.pid
Configure MySQL user
Use the following Command to create a MySQL user and grant corresponding directory permissions:
$ useradd -r -g mysql -s /bin/false mysql1
$ useradd -r -g mysql -s /bin/false mysql2
$ chown -R mysql:mysql /data/mysql1
$ chown -R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql :mysql /share/opt/mysql2
3. Install multiple MySQL instances based on Docker containers
-e MYSQL_ROOT_PASSWORD=your_password \
-p 3306:3306 \
-v /data/mysql1:/var/lib/mysql \
-v /share/opt/mysql1:/etc/mysql \
mysql/mysql-server:latest
$ docker run -- name=mysql2 -d \
-e MYSQL_ROOT_PASSWORD=your_password \
-p 3307:3306 \
-v /data/mysql2:/var/lib/mysql \
-v /share/opt /mysql2:/etc/mysql \
mysql/mysql-server:latest
datadir = /var/lib/mysql
socket = /var/run/ mysqld/mysqld.sock
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
user = mysql
log-error = / var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
Using multiple MySQL instances
After configuring multiple MySQL instances, you can connect to the corresponding port, use the corresponding database instance name and configure the corresponding user To use multiple MySQL instances:
mysql -h localhost -u username1 -p -P 3306 -D database1
mysql -h localhost -u username2 -p -P 3307 -D database2
The above is the detailed content of How to install multiple MySQL on the same server. For more information, please follow other related articles on the PHP Chinese website!