mysql之主从配置实现
我使用的是两台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之主从配置实现的更多相关文章
- [转帖]mysql数据库主从配置
mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04- ...
- mysql的主从配置以及主主配置
基础环境 系统:linuxmysql版本:5.5主服务器IP:192.168.1.101从服务器IP:192.168.1.102 1.主服务器(master)要打开二进制日志2.从服务器(slave) ...
- Mysql的主从配置
前言:这次学习分布式的思想要配置mysql的主从复制和读写分离,我在主从配置上踩到很多坑,在此演示一遍配置过程,并附上问题的说明和自己的一些见解 Mysql主从复制的原理 附上原理图: mysql的主 ...
- Mysql数据库主从配置
一.为什么要使用数据库主从架构 一个网站损耗资源最厉害的就是数据库,最易崩溃的也是数据库,而数据库崩溃带来的后果是非常严重的.数据库分为读和写操作,在实际的应用中,读操作的损耗远比写操作多太多,因此读 ...
- mysql传统主从配置与主从监控
主从简介 在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患. 当数据规模非常大,读写量也很高时,一台数据库已经无法负担全部读写任务,就需要多台数据 ...
- Centos7下mysql的主从配置
最近,有朋友业务并发量比较大,让我帮他配置个主从,来缓解数据库的压力.下面就是我配置的,有需要的朋友可以借鉴下. 首先,我得到2台服务器: 172.18.2.142(主) 172.18.2.141(从 ...
- Mysql Master-slave 主从配置
MySQL主从复制 场景描述:主数据库服务器:192.168.10.130,MySQL已经安装,并且无应用数据.从数据库服务器:192.168.10.131,MySQL已经安装,并且无应用数据. 2. ...
- mysql主从复制 主从配置(windows系统上)
OS:Windows7 DB:MYSQL5.6.2 1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下 ...
- mysql GTID主从配置
主数据库配置 [mysqld] server_id=1 gtid_mode=on enforce_gtid_consistency=on skip_slave_start=1log_bin=maste ...
随机推荐
- mysql 内置函数和sql server 内置函数的区别
以下函数均没有对参数做说明,使用的使用需要了解其参数内容 数据库 sql server mysql oracle 举例 获得当前系统时间 getdate() now() sysdate 注意不是函数 ...
- redis、memcached、mongoDB 对比
Mongodb和Memcached不是一个范畴内的东西.Mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.Mongodb 和 Memcached不存在谁替换谁的问题. ...
- Dll重定向(尚存否?)
windows核心编程(第五版)的20.6节介绍了Dll重定向. 0x01 Dll重定向简介 产生Dll重定向原因: 应用程序 a.exe 依赖动态链接库 compoent.dll 1.0 版本.但 ...
- DevExpress WPF v18.2新版亮点(一)
买 DevExpress Universal Subscription 免费赠 万元汉化资源包1套! 限量15套!先到先得,送完即止!立即抢购>> 行业领先的.NET界面控件2018年第 ...
- matlab中hold on 和hold off功能的区别
hold off 使但当前轴及图形不具备被刷新的性质 hold on和hold off是相对使用的 前者为,你在当前轴(坐标系)中画了一幅图,再画另一幅是,原来的图还在,与新图共存,都看得到: 后者表 ...
- Oracle create tablespace 、create user and so on
1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_ ...
- ChinaCock界面控件介绍-CCLoadingIndicator
这是一个显示等待状态的控件,当在线程中执行一个稍长时间的任务,需要显示一个等待过程,免得让用户不知app在做什么?避免用户寂寞. 先看看这个控件的属性说明: BackgroundTransparenc ...
- centos安装htop
在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况.内存消耗情况,以及每个进程情况等.但是,你知道吗?还有另外一个命令行工具 ...
- wsgi&nginx-理解
WSGI协议 首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web ...
- __new__() 与__init__()的区别
__new__作用于__init__之前.前者可以决定是否调用后者,或者说可以决定调用那个类的__init__方法. 首先要知道在面向对象编程中,实例化基本遵循创建实例对象,初始化实例对象,最后返回实 ...