mysql多个实例 主从库,Mysql多实例启动和主从复制

目录

一、安装mysql

首先安装mysql,将mysql安装在linux系统目录下(例如:/usr/local/mysql-5.7.26),在mysql的安装目录(/usr/local/mysql-5.7.26)下创建data文件夹,在data文件夹下创建4个目录文件夹,分别为3307,3308,3309,3310作为我们启动的多实例mysql数据库。

注:mysql数据库的安装在网上可以搜到大把教程,可自行百度安装。

二、mysql多实例启动

2.1、多实例的初始化

在mysql的/usr/local/mysql-5.7.26/bin目录下分别执行命令:

(1)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql

(2)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql

(3)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql

(4)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql

注:--initialize-insecure :为不生成root用户密码,即密码为空

--basedir:指定mysql的安装目录

--datadir:指定mysql的数据存储目录

--user:指定mysql启动的用户名(root只是启动用户管理者,mysql为启动的用户使用者)

53f2d8d37e1004c4c1d61dd4edc1d96e.png

初始化完成之后,在3307,3308,3309,3310目录下分别创建一个my.cnf文件:

(1)、分别对这4个文件进行配置(其他几个实例相同,修改相关端口和路径)

[client]

port=3307

socket=/usr/local/mysql-5.7.26/data/3307/mysql.sock

default-character-set=utf8

[mysqld]

datadir=/usr/local/mysql-5.7.26/data/3307

socket=/usr/local/mysql-5.7.26/data/3307/mysql.sock

#user=mysql

port=3307

character-set-server=utf8

log-error=/usr/local/mysql-5.7.26/data/3307/error.log

pid-file=/usr/local/mysql-5.7.26/data/3307/mysql.pid

lower_case_table_names=1

autocommit=1

client为客户端设置,主要是端口、编码设置

mysqlld为服务端设置

datadir:数据存储位置

log-error:错误日志

pid-file:进程编号文件

lower_case_table_names=1:忽略大小写

autocommit=1:自动提交

2.2、多实例数据库启动

切换到mysql的/usr/local/mysql-5.7.26/bin目录下,使用mysql_safe命令指定配置文件并启动mysql服务:

(1)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3307/my.cnf &

(2)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3308/my.cnf &

(3)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3309/my.cnf &

(4)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3310/my.cnf &

--defaults-file:指定启动配置文件

&:后台启动

启动之后可以通过命令:ps -ef | grep mysql 查看mysql启动情况

eae7268dcdac523ab2aaea649ed41880.png

至此,多实例mysql数据库启动完成。

2.3、多实例启动后配置

(1)切换到mysql的/usr/local/mysql-5.7.26/bin目录下,使用命令./mysql -uroot -p -P3307 -h127.0.0.1登录mysql客户端

(2)修改mysql的密码,执行命令alter user 'root'@'localhost' identified by 'root';(把root用户的密码改为root)

(3)授权远程访问,执行命令grant all privileges on *.* to root@'%' identified by 'root';(注1)

(4)刷新权限,执行命令flush privileges;

注1:其中*.*,第一个*代表任意数据库,第二个*代表任意表。

root@‘%’中,root表示用户名,%表示IP地址,可以具体指定,例如:root@192.168.20.123

2.4、多实例关闭

方法一:bin目录下,执行命令./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown;

-p:密码

-P:关闭对应多实例的端口号

-h:IP地址

方法二:在mysql命令行直接执行命令:shutdown;

三、主从复制的搭建(一主三从)

以3307做为主,3308、3309、3310做为从为例。

修改3307主服务器的的my.cnf文件,分别对应添加下面2行:

log-bin=mysql-bin

server-id=3307

log-bin:表示启用二进制日志

server-id:服务器id,必须唯一

修改3308,3309,3310从服务器的my.cnf文件,分别对应添加下面1行:

server-id=3308

3.1、设置mysql服务器主从关系

3.1.1 、主服务器设置(3307)

(1)、在主服务器(3307)上创建复制数据的账号并授权,进入主服务器mysql命令行,执行命令grant replication slave on *.* to 'copy'@'%' identified by 'root';(注1)

(2)、查看主服务状态show master status;若主服务器状态正常,可不重置主服务器,否则应该重置主服务器 reset master;

9d23ebb8f90674912cd76e61aa511e04.png

图中file为二进制日志文件,position为偏移坐标,表示从偏移坐标开始复制,正常状态为154.

注1:创建复制账号为copy,密码为root,可在mysql数据库中的user表中进行查看。

3.1.2、从服务器设置(3308,3309,3310)

(1)、先查看一下从服务器(3308,3309,3310)状态 show slave,如果状态正常(状态为Empty set)可以不重置,否则应该重置先 stop slave;再reset slave;

(2)在从服务器上指定复制哪个主服务器,执行命令:change master to master_host='192.168.254.102',master_user='copy',master_port=3307,master_password='root',master_log_file='mysql-bin.000001',master_log_pos=154;

master_host:主服务器的ip地址

master_port:主服务器的端口

master_user:主服务器的复制账号(上一步在主服务器已创建)

master_password:主服务器的复制密码(上一步在主服务器已创建)

master_log_file:主服务器的二进制日志文件

master_log_pos:主服务器日志文件的偏移量

(3)、开始mysql主从复制,执行命令:start slave;

(4)、验证,可以使用Navicat直接手动测试,也可以查看mysql状态。

进入mysql命令行,show slave status \G

查看Slave_IO_Running和Slave_SQL_Running为YES,就为正常状态

7a9924a9704926c869064959ac045c3d.png

四、小结

至此,mysql的主从复制(一主三从)就已经配置好了,双主双从也就是把对应的主服务器和从服务器按照此操作一遍即可。

标签:主从复制,5.7,Mysql,26,实例,usr,mysql,服务器,local

来源: https://blog.csdn.net/vatxiongxiaohui/article/details/95195046

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值