一、多实例概述
MySQL多实例是指安装 MySQL 之后,在一台 Linux 服务器上同时启动多个 MySQL 数据库(实例),不需要安装多个MySQL(适合技术研究和学习的场景)
如果是有多台 Linux 服务器,那么我们需要每台服务器都分别安装 MySQL (适用于实际线上生产环境)。
我们此处计划在一台 Linux 上启动多个 MySQL,这样适合我们的技术研究和学习,如果要在多台 Linux 分别启动 MySQL,这个与我们在一台机器上的配置与操作都是完全一样的。
如何实现在一台Linux服务器上同时启动多个MySQL数据库(实例)?
通过为各个数据库实例配置独立的配置文件来实现,即每个数据库实例有自己单独的配置文件。
二、多实例配置
A、在MySQL安装主目录下创建四个实例存放数据的目录
/data/3307, /data/3308, /data/3309, /data/3310

B、执行数据库初始化
在 MySQL 的 /usr/local/mysql-5.7.24/bin 目录下执行命令
./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.24 --datadir=/usr/local/mysql-5.7.24/data/3307 --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.24 --datadir=/usr/local/mysql-5.7.24/data/3308 --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.24 --datadir=/usr/local/mysql-5.7.24/data/3309 --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.24 --datadir=/usr/local/mysql-5.7.24/data/3310 --user=mysql
initialize-insecure 表示不生成 MySQL 数据库 roo t用户的随机密码,即 root密码为空。
C、配置四个MySQL数据库服务的 my.cnf 文件
为了方便操作,在 Xshell 中打开 4 个选项卡,去连接不同的是 MySQL 实例

在 /data/3307, /data/3308, /data/3309, /data/3310 四个目录下分别创建一个 my.cnf 文件,在四个 my.cnf 文件分别配置如下内容
注意:不同的实例下配置要修改端口号
[client]
port = 3307
socket = /usr/local/mysql-5.7.24/data/3307/mysql.sock
default-character-set=utf8
[mysqld]
port = 3307
socket = /usr/local/mysql-5.7.24/data/3307/mysql.sock
datadir = /usr/local/mysql-5.7.24/data/3307
log-error = /usr/local/mysql-5.7.24/data/3307/error.log
pid-file = /usr/local/mysql-5.7.24/data/3307/mysql.pid
character-set-server=utf8
lower_case_table_names=1
autocommit = 1
三、多实例启动
切换到 /usr/local/mysql-5.7.24/bin 目录下,使用 msyqld_safe 命令指定配置文件并启动 MySQL 服务:
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3307/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3308/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3309/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3310/my.cnf &
其中 --defaults-file 是指定配置文件,& 符合表示后台启动
四、启动后配置
A、登录进入一个每一个 MySQL 实例
在 mysql-5.7.24/bin 目录下执行命令
方式一 :使用用端口、主机登录 (推荐使用该方式)
./mysql -uroot -p -P3307 -h127.0.0.1
方式二:使用 socket 文件
./mysql -uroot -p -S /usr/local/mysql-5.7.24/data/3307/mysql.sock
-p 是指定密码,如果没有密码则可以不写 -p,-S 是指定 sock 文件,mysql.sock 文件是服务器与本机客户端进行通信的 ip 与端口文件。
B、修改 mysql 的密码
alter user 'root'@'localhost' identified by '123456';
其中 123456 是我们设置的密码
C、授权远程访问(这样远程客户端才能访问)
grant all privileges on *.* to root@'%' identified by '123456';
其中 *.* 的第一个 * 表示所有数据库名,第二个*表示所有的数据库表
root@‘%’ 中的 root 表示用户名。
% 表示所有 ip 地址,% 也可以指定具体的 ip 地址,比如 root@localhost,root@192.168.10.129
D、刷新权限
flush privileges;
五、多实例关闭
切换到/usr/local/mysql-5.7.24/bin目录下,使用 mysqladmin 命令 shutdown
方式一:使用端口、主机关闭(推荐)
./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown
方式二:使用 socket 文件
./mysqladmin -uroot -p -S /usr/local/mysql-5.7.24/data/3307/mysql.sock shutdown
方式三: 进入MySQL的客户端命令行,直接执行 shutdown
退出MySQL命令行
在客户端命令行下执行 exit
六、Navicat 连接主从库
在 Navicat 中创建多个连接,分别连接主从库


本文详细介绍了如何在Linux服务器上配置和管理多个MySQL实例,包括创建数据目录、初始化数据库、配置my.cnf文件、启动与关闭数据库服务,以及通过Navicat进行连接。此外,还涉及了密码设置、远程访问授权和权限刷新等关键步骤。

2138

被折叠的 条评论
为什么被折叠?



