我使用的是两台centos7虚拟机来做实验的,主服务器ip为192.168.2.128,从服务器ip为192.168.2.130
安装mysql就不用说了吧,不对,我们需要安装的是mariadb,命令行安装yum install mariadb mariadb-server -y就可以了
主,从服务器安装好mariabd后,开启mysql服务,修改密码(应该是这条命令mysql_secure_installtion),修改好密码后进入mysql,命令mysql -uroot -p 你的密码

在主服务器上进行下列操作 :

mysql> GRANT all privileges ON *.* TO 'repl'@'192.168.2.%' IDENTIFIED BY 'mysql';   #新建用户,并授权,注意要是全部权限(其实这个权限过大了),或者复制权限

修改my.cnf,vi /etc/my.cnf
在[mysqld]下面增加下面两行代码
server_id=1 #给数据库服务的唯一标识,我一般设置为服务器Ip最后一个数 
log-bin=master-bin #设置为master
保存退出并重启MySQL服务
查看日志
mysql> SHOW MASTER STATUS;
+——————-+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————-+———-+————–+——————+
| master-bin.000001 | 1285 | | |
+——————-+———-+————–+——————+
1 row in set (0.00 sec)
显示上面的内容说明配置正确了

记录File | Position下面的那两个值了,在从服务器配置时我们需要用到

从服务器配置如下 :
也是修改my.cnf,在[mysqld]下面增加如下内容
server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
重启mysql服务器
进入mysql,执行下面的命令,其中Master服务器产生的File | Position对应下面的master_log_file和master_log_pos值,填写完之后在主服务器执行一下SHOW MASTER STATUS;确保这两个值是正确对应的

change master to master_host='192.168.2.128', //Master 服务器Ip
master_port=3306,
master_user='repl',
master_password='mysql',
master_log_file='master-bin.000001',
master_log_pos=1285;

然后start slave;

接着在从服务器上shwo slave status\G;如果返回结果跟下面差不多(主要就是Slave_IO_Running和Slave_SQL_Running这两个值一定要是yes才是配置正确的)

MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.128
Master_User: kali
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000003
Read_Master_Log_Pos: 245
Relay_Log_File: slave-relay-bin.000005
Relay_Log_Pos: 530
Relay_Master_Log_File: master-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 245
Relay_Log_Space: 1109
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)

补充:下面是我再配置过程中遇到的一些问题

一:我的第一个错误是执行start slave后报

ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

上面这个错误是因为我master_log_file=’master-bin.000001’这里填错了,没有对应master服务器,master_log_pos的值不对应也会报错 
我因为配置了很多次主从都没有成功,一直报上面那个错误,所以可以使用stop slave;然后reset slave;重置slave配置,接着在执行那条change master命令,最后执行start slave;就不会报错了

二:show slave status \G;显示不正确
mysql >show slave status \G; 
不是显示 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
而是显示 
Slave_IO_Running: Connecting 
Slave_SQL_Running: Yes 
这表示我们还没有配置正确 
后来我试了试远程用reql用户登录主服务器myql,发现无法登录,后来上网查了查资料,发现原来是防火墙阻止了,那么让我们简单粗暴的解决问题吧,systmctl stop firewalld

后来再次实验遇到过一个很郁闷的问题就是一直显示Slave_IO_Running: Connecting


后来我发现创建用户时,我是这么创建的
grant all privileges on test.* to bp@’192.168.245.140’ identified by ‘123456’;
注意到有什么不一样的地方不。其实语句本身没有错误,但是用在这里却不行,会导致从库出错,从库必须对全部的数据库据都有全部权限,而我这里只授权了test里面的表权限,坑人啊

报slave_io running:no 可能是防火墙问题,可以尝试关闭mysql 主服务器的防火墙

mysql之主从配置实现的更多相关文章

  1. [转帖]mysql数据库主从配置

    mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04- ...

  2. mysql的主从配置以及主主配置

    基础环境 系统:linuxmysql版本:5.5主服务器IP:192.168.1.101从服务器IP:192.168.1.102 1.主服务器(master)要打开二进制日志2.从服务器(slave) ...

  3. Mysql的主从配置

    前言:这次学习分布式的思想要配置mysql的主从复制和读写分离,我在主从配置上踩到很多坑,在此演示一遍配置过程,并附上问题的说明和自己的一些见解 Mysql主从复制的原理 附上原理图: mysql的主 ...

  4. Mysql数据库主从配置

    一.为什么要使用数据库主从架构 一个网站损耗资源最厉害的就是数据库,最易崩溃的也是数据库,而数据库崩溃带来的后果是非常严重的.数据库分为读和写操作,在实际的应用中,读操作的损耗远比写操作多太多,因此读 ...

  5. mysql传统主从配置与主从监控

    主从简介 在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患. 当数据规模非常大,读写量也很高时,一台数据库已经无法负担全部读写任务,就需要多台数据 ...

  6. Centos7下mysql的主从配置

    最近,有朋友业务并发量比较大,让我帮他配置个主从,来缓解数据库的压力.下面就是我配置的,有需要的朋友可以借鉴下. 首先,我得到2台服务器: 172.18.2.142(主) 172.18.2.141(从 ...

  7. Mysql Master-slave 主从配置

    MySQL主从复制 场景描述:主数据库服务器:192.168.10.130,MySQL已经安装,并且无应用数据.从数据库服务器:192.168.10.131,MySQL已经安装,并且无应用数据. 2. ...

  8. mysql主从复制 主从配置(windows系统上)

    OS:Windows7 DB:MYSQL5.6.2 1.正常安装第一个mysql(安装步骤省略)  2.在控制面板里停止第一个mysql服务  3.将C:\Program Files\MySQL目录下 ...

  9. mysql GTID主从配置

    主数据库配置 [mysqld] server_id=1 gtid_mode=on enforce_gtid_consistency=on skip_slave_start=1log_bin=maste ...

随机推荐

  1. oracle查看编码以及修改编码

    oracle的编码一直是个很重要的问题,以前也总结的写过,但都忘了,今天再在这写一下. 首先查看oracle数据库的编码 SQL>select * from nls_database_param ...

  2. Traumland--梦乡--IPA--德语

    德国电影<<英俊少年>>的插曲.

  3. intelij idea常用设置

    1.genneral设置 2.自动导包 3.设置显示行号和方法分隔符 4.忽略大小写提示代码 比如:输入str会让其提示String 5.去掉单行显示类,让idea多行显示,容易找到类 6.设置字体及 ...

  4. 深入理解java虚拟机---Class文件(二十)

    无符号数.表 当实现了不同语言的编译器,比如jython,jruby等等,那么就可以利用这些语言编写代码,通过各自的编译器编译成符合jvm规范的字节码文件,就可以利用jvm来执行了. Class文件在 ...

  5. Xilinx 7 series FPGA multiboot技术的使用(转)

    reference:https://www.cnblogs.com/chensimin1990/p/9067629.html 当升级程序有错误的时候,系统会启动golden bitstream 注意: ...

  6. LSTM-自然语言建模

    说到自然语言,我就会想到朴素贝叶斯,贝叶斯核心就是条件概率,而且大多数自然语言处理的思想也就是条件概率. 所以我用预测一个句子出现的概率为例,阐述一下自然语言处理的思想. 处理思想-概率 句子,就是单 ...

  7. pytest启动浏览器,失败用例截图

    1.conftest.py # coding:utf- from selenium import webdriver import pytest driver = None @pytest.mark. ...

  8. JavaWeb:c3p0配置问题java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

    错误显示 java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector at dbdemo.JdbcUtils.<clinit> ...

  9. 1--常用linux命令

    参考链接:http://www.cnblogs.com/yjd_hycf_space/p/7730690.html 文件和目录 cd /home 进入 '/ home' 目录' cd .. 返回上一级 ...

  10. maven项目中的pom.xml

    需要配置的内容 1.配置头(自动生成) 2.maven项目的坐标(自动生成) <modelVersion>4.0.0</modelVersion> <groupId> ...