广告
返回顶部
首页 > 资讯 > 数据库 >配置MySQL Replication的详细步骤
  • 989
分享到

配置MySQL Replication的详细步骤

2024-04-02 19:04:59 989人浏览 泡泡鱼
摘要

不知道大家之前对类似配置Mysql Replication的详细步骤的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完配置mysql Replication的详细步骤

不知道大家之前对类似配置Mysql Replication的详细步骤的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完配置mysql Replication的详细步骤你一定会有所收获的。

Mysql Replication主要用于MySQL的时时备份或者读写分离。在配置之前先做一下准备工作,配置两台mysql云服务器,或者在一台云服务器上配置两个端口也可以。
流程示意图:

A-->change data-->bin_log-->transfer-->B-->repl_log-->change data

一、搭建好了一个mysql,跑的是3306端口。

1、下载mysql到/usr/local/src/

wget Http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 

2、解压缩

tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

3.把解压完的数据移动到/usr/local/mysql

mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

4.建立mysql用户

useradd -s /sbin/nologin mysql

5.初始化数据库

cd /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql:mysql  /data/mysql
./scripts/mysql_install_db  --user=mysql  --datadir=/data/mysql 

6.拷贝配置文件
cp support-files/my-large.cnf   /etc/my.cnf拷贝配置文件
7.拷贝启动脚本文件并修改其属性

cp support-files/mysql.server    /etc/init.d/mysqld
chmod 755  /etc/init.d/mysqld

8.修改启动脚本

vim /etc/init.d/mysqld

需要修改的地方有 “datadir=/data/mysql”
                               basedir=/usr/local/mysql
9.把启动脚本加入系统服务项,并设定开机启动,启动mysql

chkconfig --add mysqld
chkconfig  mysqld on 或service  mysqld  start或/etc/init.d/mysqld  start

检查mysqld是否启动的命令为:ps aux |grep mysqld
二、下面再搭建一个3307端口的mysql:

[root@localhost ~]#  mkdir  /data/mysql_slave
[root@localhost ~]# chown  -R  mt=ysql:mysql  /data/mysql_slave
[root@localhost ~]# cd /usr/local/
[root@localhost local]# cp -r mysql mysql_slave
[root@localhost local]# cd mysql2
[root@localhost mysql_slave]#./scripts/mysql_install_db   --user=mysql  --datadir=/data/mysql_slave
 [root@localhostmysql_slave]# cp /etc/my.cnf  .
[root@localhost mysql_slave]# vim my.cnf
【mysqld】
 改为:port = 3307  
 改为:Socket = /tmp/mysql_slave.sock
在这一行的下面再加一行:
 datadir= /data/mysql_slave 

保存后就可以启动它了:

[root@localhost mysql_slave]# cd bin/
[root@localhost bin]# ./mysqld_safe --defaults-file=../my.cnf --user=mysql &

重启:pid=`ps aux|grep mysql2.sock|grep -v grep|awk '{print $2}'`;kill $pid;cd /usr/local/mysql2/bin/; ./mysqld_safe --default-file=../my.cnf --user=mysql &

若开机启动,需要把启动命令加入到/etc/rc.local中
如果想跟mysqld一样脚本启动,则:

[root@localhost mysql_slave]# cd /etc/init.d/
[root@localhost init.d]# cp mysqld  mysqldslave
vim mysqldslave
改datadir=/data/mysql”    为   datadir=/data/mysql_slave
   basedir=/usr/local/mysql 为   basedir=/usr/local/mysql_slave
改conf=/etc/my.cnf            为   conf=$basedir/my.cnf

也可以配置到/etc/init.d/mysqlslave

cp -r mysql mysql_slave

同样修改

basedir=/usr/local/mysql_slave
datadir=/data/mysql_slave
conf=$basedir/my.cnf

后面的conf路径

conf=$basedir/my.cnf

但是不能使用/etc/init.d/mysqlslave start启动
可以使用service mysqlslave start

[root@hardman bin]# chkconfig --add mysqldslave 
[root@hardman bin]# chkconfig mysqldslave on
[root@hardman bin]# chkconfig --add mysqld
[root@hardman bin]# chkconfig mysqld on  

也可以将写入到/etc/rc.d/rc.local文件中:

echo "./mysqld_safe --defaults-file=../my.cnf --user=mysql &" >>/etc/rc.d/rc.local

三、在主云服务器上创建测试数据库
三、在主云服务器上创建测试数据库:
登录两台mysql

mysql -h227.0.0.1 -P3306    #通过主机端口登陆
mysql -h227.0.0.1 -P3307    
mysql -S /tmp/mysql.sock    #通过sock登陆
mysql -S /tmp/mysql_slave.sock  
mysql -uroot  -p密码  #通过密码登陆

登录mysql:/usr/local/mysql/bin/mysql -uroot  -p199610
        或mysql -S  /tmp/mysql.sock  
登录mysql_slave:mysql -S  /tmp/mysql_slave.sock  或者mysql -h227.0.0.1 -P3307 (无密)
 
把3306端口的mysql作为主(master),而把3307的mysql作为从(slave)
为了让实验更加像生产环境,先在master上创建一个库db1
[root@localhost bin]# mysql -uroot -S /tmp/mysql.sock -p199610

mysql> create database db1;
Query OK, 1 row affected (0.01 sec)

mysql> quit
Bye
// -S 后面指定mysql的socket文件路径,这也是登陆mysql的一种方法,因为在一台云服务器上跑了两个mysql端口,所以,只能用 -S 这样的方法来区分。
 
创建了db1库,然后把mysql库的数据复制给它:

mysqldump -uroot -S /tmp/mysql.sock  mysql > 123.sql     #备份 
mysql -uroot -S /tmp/mysql.sock db1 < 123.sql     #恢复
  1. 设置主master
    修改配置文件:

    vim /etc/my.cnf

    在[mysqld]部分查看是否有以下内容,如果没有则添加:

    server-id=1

    log-bin=mysql-bin  //可以修改为aiker等等
    除了这两行是必须的外,还有两个参数,你可以选择性的使用其中一个:
    #指定库的主从

    #binlog-do-db=db1,db2

    #忽略指定库主从,黑名单

    #binlog-ignore-db=mysql

    binlog-do-db=   #需要复制的数据库名,多个数据库名,使用逗号分隔。
    binlog-ignore-db=   #不需要复制的数据库库名,多个数据库名,使用逗号分隔。这两个参数其实用一个就可以
    重启mysql服务:

    /etc/init.d/mysqld restart
    ls  /data/mysql

    查看/data/mysql下,会出现以log-bin值文件:

    aiker.000001  

     
    设置mysql数据库的root访问密码:
    设置密码:mysqladmin -uroot -S /tmp/mysql.sock passWord '199610'
    登录:mysql -uroot -S /tmp/mysql.sock -p'199610'
     

    mysql> grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123456';

    //这里的repl是为slave端设置的访问master端mysql数据的用户,密码为123456,这里的127.0.0.1为slave的ip(因为我们配置的master和slave都在本机)。

    mysql> flush privileges;           #刷新  
    mysql>flush tables with read lock;   #定数据库,此时不允许更改任何数据
    mysql>unlock tables;
    mysql> show master status;  #查看状态,这些数据是要记录的,一会要在slave端用到
    +--------------+----------+--------------+------------------+
    | File         | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +--------------+----------+--------------+------------------+
    | aiker.000001 |      587 |              |                  |
    +--------------+----------+--------------+------------------+
    1 row in set (0.00 sec)
  2. 设置slave
    先修改slave的配置文件my.cnf:
    vim /usr/local/mysql_slave/my.cnf

    找到 “server-id = 1” 这一行,删除掉或者改为 “server-id = 2” 总之不能让这个id和master一样,否则会报错。
    另外在从上,如下两行,黑白名单,看主mysql有没有配置

    replicate-do-db=db1,db2
    replicate-ignore-db=db1,db2

改完后,重启slave:

service mysqld_slave restart

拷贝master上的db1库的数据到slave上,因为master和slave都在一台云服务器上,所以操作起来简单了很多,如果是不同的机器,可能就需要远程拷贝了,希望你注意这一点:

[root@localhost ~]# mysqldump -uroot -S /tmp/mysql.sock -pyourpassword db1 > 123.sql
[root@localhost ~]# mysql -uroot -S /tmp/mysql_slave.sock -pyourpassword -e "create database db1"
[root@localhost ~]# mysql -uroot -S /tmp/mysql_slave.sock -pyourpassword db1 < db1.sql

二行中,-e选项,它用来把mysql的命令写到shell中,这样可以方便把mysql操作写进脚本中,它的格式就是 -e "commond" 它很实用。
把数据拷贝过来后,就需要在slave上配置主从了:

mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host='127.0.0.1',master_port=3306,master_user='repl', master_password='123123',master_log_file='aiker.000001', master_log_pos=587;
Query OK, 0 rows affected (0.02 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

在主mysql上解锁

mysql -uroot -S  /tmp/mysql_slave.sock -p123123 -e  "unlock tables"

或者

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

3、测试主从
在master上执行如下命令:

[root@hardman bin]# mysql -uroot -S /tmp/mysql.sock -pederew -e "use db1;select count(*) from db"
+----------+
| count(*) |
+----------+
|        2 |
+----------+
[root@hardman bin]# mysql -uroot -S /tmp/mysql.sock -pederew -e "use db1;truncate table db" 清空db1的表
[root@hardman bin]# mysql -uroot -S /tmp/mysql.sock -pederew -e "use db1;select count(*) from db"   
+----------+
| count(*) |
+----------+
|        0 |
+----------+

[root@hardman ~]# mysql -S /tmp/mysql_slave.sock -e "use db1;select count(*) from db"
+----------+
| count(*) |
+----------+
|        0 |
+----------+

slave上的该表也被清空了。这样好像不太明显,不妨继续把db表删除试试:

[root@hardman ~]# mysql -S /tmp/mysql_slave.sock -e "use db1;select count(*) from db"
ERROR 1146 (42S02) at line 1: Table 'db1.db' doesn't exist

主从配置起来很简单,但是这种机制也是非常脆弱的,一旦我们不小心在从上写了数据,那么主从也就被破坏了。另外如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slavestart.

看完配置MySQL Replication的详细步骤这篇文章,大家觉得怎么样?如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: 配置MySQL Replication的详细步骤

本文链接: https://www.lsjlt.com/news/35671.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 配置MySQL Replication的详细步骤
    不知道大家之前对类似配置MySQL Replication的详细步骤的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完配置MySQL Replication的详细步骤...
    99+
    2022-10-18
  • Mysql主从配置详细步骤
    下文主要给大家带来Mysql主从配置详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑Mysql主从配置详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。环境:系统版本:centos6....
    99+
    2022-10-18
  • Mysql双主配置的详细步骤
    目录前言一、mysql配置文件(1)节点A配置(2)节点B配置二、配置节点A为节点B的master(主从模式)三、完成双主配置四、测试五、控制同步的库或表六、一个账号多个IP总结前言 特点:在双主配置中,两台mysql互...
    99+
    2022-06-23
    mysql双主双从怎么配置 mysql双主特色 Mysql双主
  • 配置bond4详细步骤
     简介 bond是多块物理网卡虚拟为一块网卡,使多块网卡看起来像一块网卡。linux系统下配置bond,通过网卡绑定可增加服务器可靠性,同时可增加网络带宽,提供稳定的网络服务。 环境信息 CentOS Linux release 7.9.2...
    99+
    2023-09-10
    linux 服务器 运维
  • Java配置DBeaver的详细步骤
    DBeaver简介: 无意中得知DBeaver这个工具,觉得特别神奇,对我们目前工作特别有用,所以特别惊喜。(有点土包子没见过世面。。。) 借用百度百科:DBeaver是一个通用的数...
    99+
    2022-11-11
  • 很详细的Log4j配置步骤
    以下是详细的Log4j配置步骤:1. 在项目中添加log4j库。可以通过Maven或手动下载jar包的方式将log4j库添加到项目中。2. 创建一个log4j.properties或log4j.xml配置文件。可以使用log4j.pro...
    99+
    2023-08-09
    Log4j
  • 配置PLSQL Developer详细步骤
    PL/SQL Developer作为oracle一款优秀的开发管理工具,在日常的工作中可以带来很大的方便,善用一些工具,对于我们来说真的是一大助力,本篇文章会详细讲一下PL/SQL Develop...
    99+
    2022-10-18
  • Mac上安装Mysql的详细步骤及配置
    MAC 安装mysql 有许多开发的小伙伴,使用的是mac,那么在mac上如何安装Mysql呢?这篇文章就给大家说说。 1、首先,登陆Mysql的 官网: https://www.mysql.com/downloads/...
    99+
    2023-02-09
    mac安装mysql 苹果mysql安装教程 mac mysql使用
  • 安装及配置mysql的详细步骤介绍
    下文给大家带来关于安装及配置mysql的详细步骤,感兴趣的话就一起来看看这篇文章吧,相信看完安装及配置mysql的详细步骤对大家多少有点帮助吧。一:安装mysql1.在web云服务器上安装mysql:yum...
    99+
    2022-10-18
  • 多机配置mysql数据库的详细步骤
    下面讲讲关于多机配置mysql数据库的详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完多机配置mysql数据库的详细步骤这篇文章你一定会有所受益。一主多从配置环境:&nb...
    99+
    2022-10-18
  • mysql安装及配置步骤详细介绍
    本文主要给大家简单讲讲mysql安装及配置步骤,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql安装及配置步骤这篇文章可以给大家带来一些实际帮助。My...
    99+
    2022-10-18
  • 安装和配置mysql sysbench 1.0.X详细步骤
    本文主要给大家简单讲讲安装和配置mysql sysbench 1.0.X详细步骤,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望安装和配置mysql sysb...
    99+
    2022-10-18
  • eclipse配置tomcat10的详细步骤总结
    eclipse配置tomcat tomcat资源下载 如果打开没有servers请查看这篇文章:eclipse创建项目没有dynamic web 如果如上图一样没有apache ...
    99+
    2022-11-12
  • vue3安装配置sass的详细步骤
    目录前言:1. 安装sass2. 新建style目录,存放scss文件3. main.ts 4. vite.config.ts5. Test.vue总结前言: 对于前端开发...
    99+
    2022-12-28
    vue3安装配置sass vue3安装sass vue sass
  • springmvc整合freemarker配置的详细步骤
    一、对应的导包(有些包是不必须的)<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...
    99+
    2023-05-31
    freemarker springmvc
  • linux配置防火墙的详细步骤
    本篇内容介绍了“linux配置防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过iptables我们可以为我们的Linux服...
    99+
    2023-06-13
  • centos配置nfs服务详细步骤
    这篇文章主要介绍“centos配置nfs服务详细步骤”,在日常操作中,相信很多人在centos配置nfs服务详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”centos配置nfs服务详细步骤”的疑惑有所...
    99+
    2023-06-10
  • Redis安装与配置详细步骤
    这篇文章主要讲解了“Redis安装与配置详细步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis安装与配置详细步骤”吧!安装下载,解压,编译:$ wget http://downlo...
    99+
    2023-06-05
  • 配置samba服务器详细步骤
    先配置虚拟机的静态ip, cd /etc/sysconfig/network-scripts/ifcfg-eno16777736 #z最后的ifcfg是网卡名称。每个人可能都不一样。 安装samba服务 yum install -y sa...
    99+
    2023-09-01
    服务器 运维 linux
  • Maven安装和配置&详细步骤
    作者有话说:什么是maven呢?为啥要学maven?这两个问题会在下面的文章里找到答案,带着问题阅读本文,你会受益良多。 目录 为啥要学习maven? maven简介  maven安装搭建 Maven POM Maven 坐标 Maven仓...
    99+
    2023-08-31
    maven java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作