Mysql多实例启动和主从复制

目录

一、安装mysql

二、mysql多实例启动

2.1、多实例的初始化

2.2、多实例数据库启动

2.3、多实例启动后配置

2.4、多实例关闭

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

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

3.1.1 、主服务器设置(3307)

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

四、小结


一、安装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为启动的用户使用者)

启动图片

 

初始化完成之后,在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启动情况

启动图片

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

2.3、多实例启动后远程访问配置

依次对4个已启动的数据库实例进行以下操作

(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;

主服务器状态

图中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,就为正常状态

从服务器状态

四、小结

至此,mysql的主从复制(一主三从)就已经配置好了。

双主双从配置,按照此方法配置,并在主服务器的my.cnf文件上加入配置项:

log-slave-updates  #对互为主从关系的主服务器复制之后,该服务器的从服务器也会进行复制

sync_binlog=1    #表示每几次事务进行提交,mysql把binlog缓存刷进日志文件中,默认是0,最安全的设置为1

若主键为自增,还应该配置下列2行防止主键冲突:

auto_increment_increment:自增起始值

auto_increment_offset;自增步长

注:双主双从模式,2台主服务器应该互为主从。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值