精华内容
下载资源
问答
  • 以下是错误信息 Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master ... Additional error messages can be found in the MySQL error...

    以下是错误信息


    Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

    错误原因

    在从数据库my.cnf配置文件里没有配置server-id属性

    解决办法

    //在my.cnf里添加一行
    server-id=134 //这里的id只要跟主数据库id不一样就行
    
    展开全文
  • 本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。一.安装从虚拟机:1.右键—>管理—>克隆2.选择完整克隆3....

    本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。

    一.安装从虚拟机:

    1.右键—>管理—>克隆

    e1d93eee9a0295132c85e0572b549564.png

    2.选择完整克隆

    1fabf2d7fe0c79d4bc872fc2cda601e9.png

    3.修改虚拟机的位置,默认在C盘下。

    65b43660f376ec602b23b722d62fb324.png

    4.当克隆完成后,就有这样两台虚拟机了, 由于克隆的两台服务器,ip是一样的,所以需要修改从服务虚拟机ip;

    10f2a582397a4d188f18f6e923b636bc.png

    5.修改从服务虚拟机的配置,打开配置文件

    如果不知道配置文件是哪个,可以按照下面的方式找到,

    f8160f74fab9dd75a334ccc6f6537022.png

    6.找到下面红线部分,将ip地址修改,我这里将150改为151:

    71863ea7d1436366de67a99c3e734333.png

    7.修改完成后,重启

    8.使用xShell连接新配置的虚拟机

    98da694be6de54217b75b732ba89e2aa.png

    二.配置mysql主服务:

    不管哪个项目,80%都是以读为主。所以一般要求从库的配置要高于主库。

    对于主库的配置,主要是开启binlog日志。

    1.进入mysql查看状态:

    8d6c9d290aa197921269731d6cb20ee2.png

    可以看到,执行的结果为空,所以需要开启binlog日志;

    2.找到mysql的配置文件:

    vi /etc/my.cnf

    3.在配置文件中添加binlog日志

    4.修改完保存重启:

    5.进入mysql 执行刚刚那条命令当能够看这个信息的时候,就证明binlog日志就开启成功

    abb18579bb5f6e2b600655b053147dbf.png

    对于主从复制,在本质上就是通过与从数据库复制与主数据库的binlog日志文件,通过重做实现的同步; 但是一定要注意尽量保证主从服务器上安装了相同的版本的数据库,设定主从的服务器ip地址为192.168.189.150从服务器的ip地址是192.168.189.151。

    然后再主服务器上设置一个复制使用的账号,并授予replication slave权限。

    5.创建一个复制用的账号:

    我这里设置的账号和密码都是repl_151

    c6f1ed9cac350153a2014f75a2b5c88b.png

    6.创建成功,还没有权限,所以下一步我们需要提供一个复制的权限

    到这里我们主库就配置完成了;可以使用show master status来查看binlog日志是否发生了变化。也可以使用show binlog events in ‘mysql-bin.000001';来查看刚刚我们所作的操作。

    a7c905151f4a42d73dd45cf45691aedf.png

    三.配置从库:

    对从库的操作主要就是配置同步日志文件(中继日志)。

    1.打开配置文件:vi /etc/my.cnf

    需要设置服务的id,已经中继日志需要放到哪个地方,以及定义中继日志的索引文件(可不写);

    a8723414aafc4e4dda098ff15e51cde6.png

    2.由于是克隆,所以会导致服务的uuid是相同的,执行这几行命令,将auto.cnf中的uuid清空;

    951c63365f7ebd989b1c6d6ea4735c8b.png

    3.下来要指定主库和从库的信息

    展开全文
  • 在CentOS7上搭建MySQL主从复制与读写分离MySQL主从复制原理MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。(1)MySQL支持复制的...

    在CentOS7上搭建MySQL主从复制与读写分离

    MySQL主从复制原理

    MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。

    (1)MySQL支持复制的类型。

    1)基于语句的复制。MySQL默认采用基于语句的复制,效率比较高。

    2)基于行的复制。把改变的内容复制过去,而不是把命令在从服务器上执行一遍。

    3)混合类型的复制。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。

    (2)MySQL复制的工作过程如图所示。

    7dcfd0c2015e977dac933726eb719e38.png

    1)在每个事务更新数据完成之前,Master在二进制日志记录这些改变。写入二进制日志完成后,Master通知存储引擎提交事务。

    2)Slave将Master的Binary log复制到其中继日志。首先,Slave开始一个工作线程——I/O线程,I/O线程在Master上打开一个普通的链接,然后开始Binlog dump process。Binlog dump process从Master的二进制日志中读取事件,如果已经跟上Master,它会睡眠并等待Master产生新的事件。I/O线程将这些事件写入中继日志。

    3)SQL slave thred(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新Slave的数据,使其与Master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。

    复制过程中有一个很重要的限制,即复制在Slave上是串行化的,也就是说Master上的并行更新操作不能在Slave上并行操作。

    MySQL读写分离原理

    简单来说,读写分离(见图所示)就是只在主服务器上写,只在从服务器上读。基本原理是让主数据库处理事务性查询,而从数据库处理select查询。数据库复制被用来把事务性查询导致的变更同步到群集中的从数据库。

    09f0d45d437943da9aab3bbe82ded144.png

    基于中间代理层实现:代理一般位于客户端和服务器之间,代理服务器接到客户端请求通过判断后转发到后端数据库。

    Mysql复制优点:

    1)通过添加从服务器来提高数据平台的可靠性,增加数据频台的高性能

    2)提高数据的安全性,怎以作沦寻

    3)缓解数据库的性能

    Mysql复制类型:

    1)异步复制:mysql默认是异步复制,主库不关心从收没收到数据,会直接返回给客户端,速度快,如果主库坏掉了,如果此时强制把从库提升为主库,有可能从库数据不完整

    2)全同步复制:主库执行一个事务,会等待从库完事,才会返回给客户端,但是会导致效率慢,

    3)半同步:主库执行完事务后,会等待一个从库完成事务后,在返回给客护端,

    半同步复制的潜在问题:

    客户端在存储引擎提交后,在得到从库确认过程中,主库死掉了,此时可能的情况有两种

    事务还没发送到从库上,

    此时,客户端会收到事务提交失败的信息,客户端会重新提交该事务到新的主上,当宕机的主库重新启动,会发现,该事务在从库被提交两次,一次是之前作为主的提交,一次是被新主同步过来的

    事务已经发送到从库上

    此时,从库已经收到该事务并应用了该事务,但是客户端仍会收到事务提交失败的信息,重新提交该事务到新的主上,

    解决方案,mysql 5.7 引入了一种新的半同步解决方案,

    Mysql 支持的复制方式

    (SBR)基于SQL 语句的复制:在主服务器上执行的SQL语句,在从服务器上同样执行

    (RBR)基于行的复制: 主服务器把表的行变化作为事件写入到二进制日志中,主服务器把代表了行的变化事件复制到从服务中,

    (MBR)混合模式复制,先采用基于语句的复制,一旦发现基于语句无法精确复制时,在采用行。

    Mysql在 5.6 采用基于事务的复制

    RBR的优点:

    任何情况都可以复制,这对复制来说是最安全可靠的

    更少的行级缩表

    和其他大多数数据库系统的复制技术一样

    多数情况下,从服务器的表有主键的话,复制就会快很多

    RBR(行级复制)的缺点

    binlog文件较大

    复杂的回滚时,binlog中会包含大量的数据

    主服务器上执行多个UPDATE语句时,所有发生变化的记录都会写道binlog中,而且只写一个操作事务,这会导致频繁发生binlog的并发写问题。

    不能通过查看日志文件来审计执行过的sql语句,

    SBR(sql语句复制)的优点

    历史悠久,技术成熟,binlog文件较小

    Binlog中包含了数据库所有的更改信息

    Binlog可以用于实时还原,而不仅仅用于复制

    主从版本可以不一样,从服务器版本可以比主服务器版本高

    SBR(sql语句复制)的缺点

    不是所有的语句都能复制,尤其时包含不确定操作时

    复制要求全表扫描

    对于一些复杂的操作,在从服务器上资源消耗会更严重

    d951da4145e0989bb4cd08e06f62faef.png

    主首先开启二进制,并且给从一个授权账号,

    主的写入都会写道二进制日志里

    从服务器开启IO线程,他会和主的IO线程建立连接,从会实时的探测主的二进制是否有变化,主有变化从会拿过来放到自己的中继日志,

    从会开启一个sql线程,这个线程会实时读取中继日志变化并执行,实现数据同步,

    ==============mysql从服务器不能低于主服务器=================

    实验环境

    使用五台服务器模拟搭建,具体的拓扑如图所示:

    实验环境表:

    59ccc933307cb82565c2eaa5559b4e1c.png

    实施步骤

    1.搭建MySQL主从复制。

    (1)建立时间同步环境,在主节点上搭建时间同步服务器。

    1)安装NTP。

    [root@localhost ~]#yum install ntp -y

    2)配置NTP。

    [root@localhost ~]# vim /etc/ntp.conf

    server 127.127.1.0              //本地是时钟源//

    fudge 127.127.1.0 stratum 8      //设置时间层级为8(限制在15内)//

    3)重启服务。

    [root@localhost ~]# systemctl restart ntpd.service

    (2)在从节点服务器上进行时间同步。

    [root@localhost ~]#yum install ntpdate -y

    [root@localhost ~]# ntpdate 192.168.200.111//同步主服务器的时间//

    同步网络上的时间:

    [root@localhost ~]# crontab -l

    **/5***/usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

    (3)在每台服务器上关闭firewalld防火墙。

    [root@localhost ~]# systemctl stop firewalld.service   //关闭防火墙//

    [root@localhost ~]# setenforce 0

    (4)安装MySQL数据库。在Master、Slave1、Slave2上安装,我用的数据库是MySQL5.7.17这里安装完毕不再演示。

    (5)配置MySQL Master主服务器。

    1)在/etc/my.cnf中修改或者增加以下内容。

    [root@localhost mysql]# vim /etc/my.cnf

    server-id = 11

    log-bin=master-bin             //主服务器日志文件//

    log-slave-updates=true    //从服务器更新二进制日志//

    2)重启MySQL服务。

    [root@localhost ~]# systemctl restart mysqld.service

    3)登录MySQL程序,给服务器授权。

    [root@localhost ~]# mysql -uroot -p

    MariaDB [(none)]> grant replication slave on *.* to

    Query OK, 0 rows affected (0.00 sec)

    MariaDB [(none)]> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

    mysql> show master status;

    +-------------------+----------+--------------+------------------+-------------------+

    | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

    +-------------------+----------+--------------+------------------+-------------------+

    | master-bin.000001 |      604 |              |                  |                   |

    +-------------------+----------+--------------+------------------+-------------------+

    1 row in set (0.00 sec)

    其中File列显示日志名,position列显示偏移量。

    备份原有的数据:

    Mysqldump -uroot -p123123 --all-databses > /root/alldbbackup.sql

    Scp /root/alldbbackup.sql root@192.168.200.112:/root

    导入备份脚本

    Mysql -u root -p < /root/alldbackup.sql

    从库连接主库

    Mysql -u myslave -p 123456 -h 192.168.200.111

    (6)配置从服务器。

    1)在/etc/my.cnf中修改或者增加以下内容。

    [root@localhost ~]#vim /etc/my.cnf

    server-id = 22

    relay-log=relay-log-bin     //从主服务器上同步日志文件记录到本地//

    relay-log-index=slave-relay-bin.index   //定义relay-log的位置和名称//

    这里要注意server-id不能与主服务器相同。

    2)重启mysql服务。

    [root@localhost ~]# systemctl restart mysqld.service

    3)登录mysql,配置同步。

    按主服务器结果更改下面命令中的master_log_file和master_log_pos的参数。

    从:

    [root@localhost ~]# mysql -u root -p

    MariaDB [(none)]>stop slave;

    Query OK, 0 rows affected, 1 warning (0.00 sec)

    MariaDB [(none)]>change master to master_host='192.168.200.111', master_user='myslave',master_password='123456',master_log_file='master-bin.000001', master_log_pos=456;

    Query OK, 0 rows affected (0.01 sec)

    4)启动同步。

    mysql> start slave;

    5)查看Slave状态,确保以下两个值为YES。

    mysql>show slave status\G;

    *************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 192.168.126.138                  Master_User: myslave                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: master-bin.000001          Read_Master_Log_Pos: 604               Relay_Log_File: relay-log-bin.000002                Relay_Log_Pos: 321        Relay_Master_Log_File: master-bin.000001            Slave_IO_Running: Yes                       Slave_SQL_Running: Yes         Replicate_Do_DB:           Replicate_Ignore_DB:

    如果报错的话:

    MariaDB [(none)]> stop slave;

    Query OK, 0 rows affected (0.00 sec)

    清空配置:

    MariaDB [(none)]> reset slave;

    Query OK, 0 rows affected (0.00 sec)

    重新写入配置:

    在启动

    MariaDB [(none)]> start slave;

    Query OK, 0 rows affected (0.00 sec)

    (7)验证主从复制效果。

    1)在主服务器上新建数据库 db_test。

    mysql>  create database db_test;

    2)在主、从服务器上分别查看数据库,显示数据库相同,则主从复制成功。

    mysql> show databases;    //主服务器//+--------------------+

    | Database           |+--------------------+

    | information_schema |

    | db_test            |

    | mysql              |

    | performance_schema |

    | school             |

    | sys                |+--------------------+

    6 rows in set (0.03 sec)

    mysql> show databases;    //从服务器//+--------------------+

    | Database           |+--------------------+

    | information_schema |

    | db_test            |

    | kgc                |

    | mysql              |

    | performance_schema |

    | sys                |+--------------------+

    6 rows in set (0.05 sec)

    搭建MySQL读写分离

    Amoeba(变形虫),这个软件致力于MySQL的分布式数据库前端代理层,它主要为应用层访问MySQL时充当SQL路由,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关到目标数据库、可并发请求多台数据库。通过Amoeba能够完成多数据源的高可用、负载均衡、数据切片的功能。在主服务器上写,在从服务器上读,

    目前较为常见的mysql读写分离方案有两种,

    基于代码内部实现

    在代码中根据select insert 进行理由分类,这类方法也是目前应用最广泛的,优点是性能好,因为在代码中实现,不需要增加额外的设备作为硬件开支,缺点是需要开发人员来实现,

    基于中间代理层实现,

    (1)在主机Amoeba上安装Java环境。

    Amoeba是基于jdk1.5开发的,所以官方推荐使用jdk1.5或1.6版本,高版本不建议使用。

    [root@localhost ~]#systemctl stop firewalld.service

    [root@localhost ~]# setenforce 0

    [root@localhost ~]# ls

    amoeba-mysql-binary-2.2.0.tar.gz  anaconda-ks.cfg  jdk1.6.0_14 jdk-6u14-linux-x64.bin公共  模板  视频  图片  文档  下载

    [root@localhost tomcat]# cp jdk-6u14-linux-x64.bin /usr/local/

    添加执行权限:

    [root@localhost tomcat]#chmod +x jdk*

    [root@localhost local]#./jdk-6u14-linux-x64.bin    //根据提示按Enter键完成即可//

    [root@localhost local]# mv jdk1.6.0_14/ /usr/local/jdk1.6

    [root@localhost local]#vim /etc/profile

    增加以下配置

    export JAVA_HOME=/usr/local/jdk1.6

    ExportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    Export

    PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin

    export AMOEBA_HOME=/usr/local/amoeba

    export PATH=$PATH:$AMOEBA_HOME/bin

    [root@localhost local]# source /etc/profile   //启动//

    查看版本

    [root@localhost local]#java -version

    java version "1.7.0_75"

    OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13)

    OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

    删掉命令字

    [root@localhost local]#rm -rf /usr/bin/java

    重新加载

    [root@localhost local]# source /etc/profile

    [root@localhost local]# java -version

    java version "1.6.0_14"

    Java(TM) SE Runtime Environment (build 1.6.0_14-b08)

    Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

    Java环境已配置成功。

    (2)安装并配置Amoeba软件

    [root@localhost local]# mkdir /usr/local/amoeba  创建工作路径//

    [root@localhost tomcat]# tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba   //解压安装包//

    [root@localhost tomcat]# chmod -R 755 /usr/local/amoeba/  //提示amoeba权限//

    [root@localhost tomcat]# /usr/local/amoeba/bin/amoeba

    amoeba start|stop   //显示此内容说明Amoeba安装成功//

    (3)配置Amoeba读写分离,两个Slave读负载均衡。

    1)Master、Slave1、Slave2中开放权限给Amoeba访问。

    grant all on *.* to test@'192.168.126.%' identified by '123.com';

    MariaDB [(none)]>flush privileges;

    Query OK, 0 rows affected (2.29 sec)

    2)编辑amoeba.xml配置文件。修改前先备份

    [root@localhost tomcat]# cd /usr/local/amoeba/

    [root@localhost amoeba]#vim conf/amoeba.xml

    ---30行--

    amoeba

    ----32行---------

    123456

    ---117-去掉注释-

    master

    master

    slaves

    3)编辑dbServers.xml配置文件。

    vi conf/dbServers.xml

    --26-29--去掉注释--      //行//用户名是授权的那个

    test

    123.com

    -----42-主服务器地址---

    192.168.126.138

    --52-从服务器主机名-

    --55-从服务器地址-

    192.168.126.162

    从服务器slave2            //添加//

    192.168.126.232

    --末尾--slave1,slave2    //修改//

    4)配置无误后,可用启动Amoeba软件,其默认端口为TCP 8066。

    [root@localhost amoeba]#nohup/usr/local/amoeba/bin/amoeba start&

    [root@localhost amoeba]#  netstat -anpt | grep java

    tcp6       0      0 127.0.0.1:28750         :::*                    LISTEN      3370/java

    tcp6       0      0 :::8066                 :::*                    LISTEN      3370/java

    .....//省略//

    (4) 测试

    1)在client主机上。

    [root@localhost ~]# yum install mysql -y

    可以通过代理访问MySQL:

    [root@localhost ~]# mysql -u amoeba -p123456 -h 192.168.126.132 -P8066

    ..... //省略//

    MySQL [(none)]>

    2)在Master上创建一个表,同步到各从服务器上,然后关闭各从服务器的Slave功能,再插入区别语句。

    mysql> use db_test;

    Database changed

    mysql> create table zang (id int(10),name varchar(10),address varchar(20)); //创建表//

    Query OK, 0 rows affected (0.06 sec)

    分别在从两台服务器上关闭slave功能:

    mysql> stop slave;

    然后在主服务器上插入区别语句:

    mysql> insert into zang values('1','zhang','this_is_master');  //插入数据//

    3)从服务器上手动插入其他内容。

    slave1:mysql> use db_test;

    mysql> insert into zang values('2','zhang','this_is_slave1'); //插入数据//

    Query OK, 1 row affected (0.03 sec)

    slave2:mysql>use db_test;

    mysql> insert into zang values('3','zhang','this_is_slave2'); //插入数据//

    Query OK, 1 row affected (0.03 sec)

    4)测试读操作

    在client主机上第一次查询的结果如下:

    MySQL [db_test]> select * from zang;

    +------+-------+----------------+| id   | name  | address        |

    +------+-------+----------------+|    3 | zhang | this_is_slave2 |

    +------+-------+----------------+1 row in set (0.01 sec)

    第二次查询的结果如下:

    MySQL [db_test]>select * from zang;

    +------+-------+----------------+| id   | name  | address        |

    +------+-------+----------------+|    2 | zhang | this_is_slave1 |

    +------+-------+----------------+1 row in set (0.01 sec)

    第三次查询结果:

    MySQL [db_test]>select * from zang;

    +------+-------+----------------+| id   | name  | address        |

    +------+-------+----------------+|    3 | zhang | this_is_slave2 |

    +------+-------+----------------+1 row in set (0.01 sec)

    5)测试写操作。

    在client主机上插入一条语句:

    MySQL [db_test]> insert into zang values('5','zhang','write_test');

    Query OK, 1 row affected (0.02 sec)

    但在client上查询不到,最终只有在Master上才能查看到这条语句内容,说明写的操作在Master服务器上。

    mysql> select * from zang;

    +------+-------+----------------+| id   | name  | address        |

    +------+-------+----------------+|    1 | zhang | this_is_master ||    5 | zhang | write_test     |

    +------+-------+----------------+2 rows in set (0.01 sec)

    由此验证,已经实现了MySQL读写分离,目前所有的写操作全部在Master主服务器上,用来避免数据 的不同步;所有的读操作都分摊给了Slave从服务器,用来分担数据库的压力。

    展开全文
  • 本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。一.安装从虚拟机:1.右键―>管理―>克隆2.选择完整克隆3....

    本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。

    一.安装从虚拟机:

    1.右键―>管理―>克隆

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    2.选择完整克隆

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    3.修改虚拟机的位置,默认在C盘下。

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    4.当克隆完成后,就有这样两台虚拟机了, 由于克隆的两台服务器,ip是一样的,所以需要修改从服务虚拟机ip;

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    5.修改从服务虚拟机的配置,打开配置文件

    如果不知道配置文件是哪个,可以按照下面的方式找到,

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    6.找到下面红线部分,将ip地址修改,我这里将150改为151:

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    7.修改完成后,重启

    8.使用xShell连接新配置的虚拟机

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    二.配置mysql主服务:

    不管哪个项目,80%都是以读为主。所以一般要求从库的配置要高于主库。

    对于主库的配置,主要是开启binlog日志。

    1.进入mysql查看状态:

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    可以看到,执行的结果为空,所以需要开启binlog日志;

    2.找到mysql的配置文件:

    vi /etc/my.cnf

    3.在配置文件中添加binlog日志

    4.修改完保存重启:

    5.进入mysql 执行刚刚那条命令当能够看这个信息的时候,就证明binlog日志就开启成功

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    对于主从复制,在本质上就是通过与从数据库复制与主数据库的binlog日志文件,通过重做实现的同步; 但是一定要注意尽量保证主从服务器上安装了相同的版本的数据库,设定主从的服务器ip地址为192.168.189.150从服务器的ip地址是192.168.189.151。

    然后再主服务器上设置一个复制使用的账号,并授予replication slave权限。

    5.创建一个复制用的账号:

    我这里设置的账号和密码都是repl_151

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    6.创建成功,还没有权限,所以下一步我们需要提供一个复制的权限

    到这里我们主库就配置完成了;可以使用show master status来查看binlog日志是否发生了变化。也可以使用show binlog events in ‘mysql-bin.000001';来查看刚刚我们所作的操作。

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    三.配置从库:

    对从库的操作主要就是配置同步日志文件(中继日志)。

    1.打开配置文件:vi /etc/my.cnf

    需要设置服务的id,已经中继日志需要放到哪个地方,以及定义中继日志的索引文件(可不写);

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    2.由于是克隆,所以会导致服务的uuid是相同的,执行这几行命令,将auto.cnf中的uuid清空;

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    3.下来要指定主库和从库的信息

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    4.启动 start slave;

    5.当看到两个红线框起来的地方都是yes的时候,表示已经配置成功了;

    7d69f87010c48e5ea48f1ce2f47a901d.gif

    总结

    以上所述是小编给大家介绍的在centos7上搭建mysql主从服务,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    展开全文
  • 摘要:本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在cento...本文主要是介绍在centos上搭建Mysql的主从服务器。如果没有搭建过的,可以查看...
  • 本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。一.安装从虚拟机:1.右键—>管理—>克隆2.选择完整克隆3....
  • 本文主要是介绍在centos上搭建mysql的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装centos和在centos上安装mysql的说明。一.安装从虚拟机:1.右键—>管理—>克隆2.选择完整克隆3....
  • CentOS7 安装 MySQL5.71 通过 SecureCRT 连接到阿里云 CentOS7 服务器;2 进入到目录 /usr/local/ 中:cd /usr/local/3 创建目录 /usr/local/tools,如果有则忽略:mkdir -p tools4 创建 /usr/local/mysql 目录...
  • 安装mysql查询yum服务器可用的关于mysql的安装包:[root@localhost ~]# yum list | grep mysqlmysql-libs.x86_64 5.1.71-1.el6 @anaconda-CentOS-201311272149.x86_64/6.5apr-util-mysql.x...
  • mysql服务基础:mysql是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。MySQL的编译安装:1.安装支持软件yum install gcc gcc-c++ ...
  • 在CentOS7上搭建MySQL主从复制与读写分离的具体操作步骤发布时间:2020-06-05 17:16:29来源:51CTO阅读:279作者:三月本篇文章给大家主要讲的是关于在CentOS7上搭建MySQL主从复制与读写分离的具体操作步骤的内容,...
  • centos7 搭建 mysql8

    2018-09-19 23:27:00
    记录centos搭建mysql遇到的坑 1. 直接用centos 的yum命令进行安装,发现找不到 mysql-server,于是下载 rpm文件进行后进行安装,具体可参考官网https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2. ...
  • 主要介绍了在centos7上搭建mysql主从服务器的方法,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • CentOS7搭建Mysql环境

    2019-09-20 16:53:14
    由于服务器执行下载源时,链接不到MySQL官网,所以采用本地下载好MySQL压缩文件,上传到服务器解压安装的方式。 访问 MySQL 官网的yum下载页面获取 CentOS7 的下载链接。(CentOS 由红帽管理,所以选择红帽...
  • 原文链接:... 安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1、配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/  # 下载mysql源安装包 shell> w
  • ----------搭建MySQL--------------- 1、查看yum库中的mysql yum list | grep mysql //查看yum库中的mysql 2、选择需要的mysql进行安装 yum install mysql mysql-server mysql-devel -y //安装mysql ...
  • mysql服务基础: mysql是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。 MySQL的编译安装: 1.安装支持软件 yum install gcc gcc-...
  • Centos7上搭建MySQL主从

    2020-12-01 15:55:55
    Centos7上搭建MySQL主从 1.环境准备和说明 主库所在机器IP:192.168.41.128 从库所在机器IP:192.168.41.129 保证主库和从库的databases、tables必须存在(即databases和tables的DDL语句必须保持一致且已完全执行...
  • 当主结点的MySQL服务器产生故障时,MHA能自动完成数据库的故障切换操作,而且进行故障切换的过程中,MHA能最大程度保证数据的一致性MHA组成部分MHA由MHA Manager和MHA Node组成,MHA Node运行后...
  • 主从基本概念mysql主从同步定义主从同步使得数据可以从一个数据库服务器复制到其他服务器复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器...
  • 准备条件:2台Mac电脑,通过虚拟机都装有Centos7,首先给2个Centos7系统装好Mysql8.0,安装方法见我前面的文章。 Mac-A的Centos地址为192.168.1.103,为主数据库。 Mac-B的Centos地址为192.168.1.106,为从...
  • 首先,我们去官网挑选适合自己的MySQL版本,因为我们用的是CentOS系统,选择一个Redhat的版本。 复制URL,到Linux下找一个要下载的路径,并利用wget工具将MySQL下载到服务器: wget https://dev.my...
  • 首先介绍下怎么卸载MySql,因为对于小白来说Linux系统操作很多时候弄着弄着就不知道自己为什么弄错了,本人小白一枚,装着装着不知道改了那连数据库都进不去了。所以先讲解一下卸载MySql 1.用yum方式安装的MySql ...
  • 安装apache:yum install httpd httpd-devel启动apache:/etc/init.d/httpd start此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口安装mysql:yum install mysql mysql-server...
  • 安装mysql数据库时,先要linux确认自己的系统版本,是centos7还是centos8,因为不同的版本支持的mysql版本也不一样。centos8默认支持mysql8.0的。至于为什么,可以看看我一篇文章CentOS7与CentOS8的区别。我...
  • 环境:Mac + CentOS 7.5 + MySQL 8.0MySQL 主从复制的优点:1、 如果主服务器出现问题, 可以快速切换到从服务器提供的服务,保证高可用性2、 可以从服务器执行查询操作, 降低主服务器的访问压力3、 可以从...
  • centos mysql 环境搭建

    2017-05-09 16:45:58
    在centos 上搭建mysql时, 用yum 安装总是出现很多问题, 参考网上的一篇文档,最终总算是搭好了。 1. 卸载原有的mysql1. sudo rpm -qa | grep mysql 2. sudo rpm -e --nodeps mysql // 强力删除mysql包 3. sudo yum...
  • virtualBox centOS6.9 mysql5.6.38 这里我用的是virtualBox虚拟机搭建的三台服务器,这里的mysql版本尽量一致,如果不一致那么从服务器版本不能高于主服务器版本 网上经验: 线上的项目导出数据的时候,保证主库...
  • MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能此基础进行数据的读写分离。 (1)MySQL支持复制的类型。 1)基于语句的复制。MySQL默认采用基于语句的复制,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,593
精华内容 637
关键字:

在centos上搭建mysql

mysql 订阅