mysql双主环境部署

1、环境安装
准备二进制安装包:mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
linux操作系统
两台服务器
2、创建mysql用户,并创建目录
root用户:
useradd mysql
mysql用户:

mkdir software
mkdir db_mysql
mkdir db_mysql/blog
mkdir db_mysql/data
mkdir db_mysql/conf
mkdir db_mysql/elog
mkdir db_mysql/rlog
mkdir db_mysql/tmp
mkdir db_mysql/ulog

3、安装包上传linux服务器,并解压
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C
4、在db_mysql/conf目录下编辑my.cnf文件
主从库都加上主键自增规则,避免主从同步ID重复的问题,不过主库从1开始单数,从库从2开始双数
auto_increment_increment=2
auto_increment_offset=1
service_id=2000101
5、使用root查看系统是否自带了mariadb,并卸载它

rpm -qa |grep mariadb
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

6、初始化mysql

/home/mysql/mysql-5.7.34/bin/mysqld --defaults-file=/home/mysql/db_mysql/conf/my.cnf --initialize --user=mysql

7、查看日志,确认是否初始化成功,初始化成功会生成root用户的临时密码

more /home/mysql/db_mysql/elog/mysql.err

注:初始化时并不生成mysql.sock的文件
8、初始化成功,安全启动mysql服务

/home/mysql/mysql-5.7.34/bin/mysqld_safe --defaults-file=/home/mysql/db_mysql/conf/my.cnf &

9、查看是否启动成功

ps -ef|grep mysqld

10、修改root用户密码,并创建同步账号

mysql> set password=PASSWORD('');
mysql> 

第一次密码登录root用户后必须执行:

mysql> alter user 'root'@'localhost' identified by 'xxx' PASSWORD EXPIRE NEVER account unlock;    #原本密码有效期为360天需要取消这个限制。

mysql> flush privileges;

重新登录mysql,创建同步账号

mysql> create user 'repl'@'%' identified by 'repl';
mysql> grant replication slave,replication client on *.* to 'repl'@'%' identified by 'repl';

11、由于是非root用户安装mysql,需要配置下mysql.server文件(按照实际按照路径修改),并将my.cnf文件放在/home/mysql/mysql-5.7.34目录下:
basedir=/home/mysql/mysql-5.7.34
datadir=/home/mysql/db_hadoop_bj
mysqld_pid_file_path=/home/mysql/db_hadoop_bj/mysql.pid
12、设置开机自启动
先将/home/mysql-5.7.34/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld

命令: cp /home/mysql/mysql-5.7.34/support-files/mysql.server /etc/rc.d/init.d/mysqld

赋予可执行权限:chmod +x /etc/init.d/mysqld

添加为服务: chkconfig --add mysqld

查看服务列表: chkconfig --list,如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysql on

知识补充:Linux 下目录/etc/init.d 与目录/etc/rc.d/init.d完全相同,/etc/init.d是一个符号链接文件,链接指向/etc/rc.d/init.d

13、mysql的启动关闭方式

  1. sh /etc/init.d/mysqld start/stop
  2. service mysqld start/stop

14、按照2-13步部署另一台服务器,其中my.cnf需修改参数:

     auto_increment_increment=2  
     auto_increment_offset=2
     service_id=2000102  

15、查看主库的状态

masterA上:
mysql> show master status;
masterB上
mysql> show master status;

16、配置同步信息:

masterA上:
mysql> change master to master_host='192.168.10.12',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000003',master_log_pos=437;
mysql> start slave;
mysql> show slave status\G;
显示有如下状态则正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
masterB上:
#本人是测试环境,可以保证没数据写入,否则需要的步骤是:先masterA锁表-->masterA备份数据-->masterA解锁表 -->masterB导入数据-->masterB设置主从-->查看主从
mysql> change master to master_host='192.168.10.11',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=120;
mysql>start slave;
mysql>mysql> show slave status\G;
显示有如下状态则正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

17、测试数据主从同步
创建数据库、创建表两个库均可互相同步

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值