centos7 安装 mysql8.0.16 多实例

参考链接

说明

在同一台服务器上安装多实例的mysql,常规做法是生成多个实例的数据文件,然后配置多个my.cnf,通过指定不同的my.cnf逐个启动,具体可以参考mysql单实例的安装方法。
但是这种做法,随着端口号的增加,管理起来会很繁琐,mysqld_multi正好可以满足我们的需要。

生成实例的数据文件

略。请参考单实例的文章。

创建多实例的配置文件(名字可自定义)

编辑配置文件: vi /app/mysqldata/my_multi.cnf,大致内容如下:

 1[mysqld_multi]
 2mysqld     = /usr/local/mysql/bin/mysqld_safe
 3mysqladmin = /usr/local/mysql/bin/mysqladmin
 4user       = multi_admin
 5password   = my_password
 6
 7[mysqld3306]
 8user=mysql
 9server-id=3306
10port=3306
11mysqlx_port=33060
12basedir=/usr/local/mysql
13datadir=/app/mysqldata/3306/data
14plugin-dir=/usr/local/mysql/lib/plugin
15tmpdir=/app/mysqldata/3306/tmp
16socket=/app/mysqldata/3306/tmp/mysql.sock
17mysqlx_socket=/app/mysqldata/3306/tmp/mysqlx.sock
18pid-file=/app/mysqldata/3306/tmp/mysql.pid
19log-error=/app/mysqldata/3306/tmp/mysql-error.log
20character-set-server=utf8mb4
21collation-server=utf8mb4_unicode_ci
22
23[mysqld3307]
24user=mysql
25server-id=3307
26port=3307
27mysqlx_port=33070
28basedir=/usr/local/mysql
29datadir=/app/mysqldata/3307/data
30plugin-dir=/usr/local/mysql/lib/plugin
31tmpdir=/app/mysqldata/3307/tmp
32socket=/app/mysqldata/3307/tmp/mysql.sock
33mysqlx_socket=/app/mysqldata/3307/tmp/mysqlx.sock
34pid-file=/app/mysqldata/3307/tmp/mysql.pid
35log-error=/app/mysqldata/3307/tmp/mysql-error.log
36character-set-server=utf8mb4
37collation-server=utf8mb4_unicode_ci

启动多个mysql实例

1mysqld_multi --defaults-file=/app/mysqldata/my_multi.cnf start

以上命令会启动配置文件中所有的mysql实例。

如果只想启动3306端口的实例,则:

1mysqld_multi --defaults-file=/app/mysqldata/my_multi.cnf start 3306

停止多个mysql实例

1mysqld_multi --defaults-file=/app/mysqldata/my_multi.cnf --user=root --password=root stop

以上命令会启动配置文件中所有的mysql实例,但有一个前提,就是所有的数据库实例的用户名一致,并且密码完全一致。
如果有不一致的,需要指定具体的实例,如:

1mysqld_multi --defaults-file=/app/mysqldata/my_multi.cnf --user=root --password=root stop 3306

mysqld_multi 的官方说明

https://dev.mysql.com/doc/refman/8.0/en/mysqld-multi.html