博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装 mysql 数据库, 并做 主 从(二)
阅读量:6575 次
发布时间:2019-06-24

本文共 2166 字,大约阅读时间需要 7 分钟。

hot3.png

按照第一篇安装   安装好两台mysql;做好这些后,我们来做主从吧!

ip serverid role
192.168.80.119 1 master
192.168.80.110 2 slave

master上开启binlog日志,加入以下配置

vim /etc/my.cnf[mysqld]server-id=1 #服务器id (主从必须不一样)log-bin=mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径#作为主机的配置,可以不写,默认所有binlog-do-db=                 #要给从机同步的库(多个写多行)binlog-ignore-db=mysql #不给从机同步的库(多个写多行)binlog-ignore-db=information_schemabinlog-ignore-db=performance_schemabinlog-ignore-db=sysexpire_logs_days=7 #自动清理 7 天前的log文件,可根据需要修改

重启数据库

service mysqld restartmysql -uroot -ppasswordmysql> show variables like '%log_bin%';

 

master的数据库中建立备份账号:backup为用户名,%表示任何远程地址,如下表示密码为123456的任何远程地址的backup都可以连接master主机

mysql> grant replication slave on *.* to 'backup'@'%' identified by '123456';mysql> use mysqlmysql> select user,authentication_string,host from user;

重启MySQL服务并设置读取锁定,读取锁定的意思是只能读取,不能更新,以便获得一个一致性的快照

mysql> show master status\G

查看主服务器上当前的二进制日志名和偏移量值这里的file 和position 要和从上的一致

导出master(192.168.80.119)种的数据,然后导入slave 中

master:有几个数据库就导出几个

mysqldump -uroot -proot -hlocalhost test> /opt/test.bak#如果要传所有就用*,如果传具体某一个,就写文件名 scp /opt/*  root@192.168.80.110:/opt/

配置slave

添加配置

vim /etc/my.cnf[mysqld]server_id=2#加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。read_only = 1master_info_repository=TABLErelay_log_info_repository=TABLE#避免一些错误导致主从断开slave-skip-errors = 1062,1032,1060#relay_log_recovery=1 #从机禁止写#super_read_only=1 #从机禁止写

 

然后导入到mysql数据库中,slave上的employees数据库不存在则先创建,然后再导入

mysql> create database employees;mysql -uroot -p123456 -hlocalhost employees < /opt/employees.bakservice mysqld restartmysql -uroot -proot#进入sql命令mysql> stop slave;mysql> change master to-> master_host='192.168.80.119', #master的ip-> master_user='backup', #备份用户名-> master_password='123456', #密码-> master_log_file='mysql-bin.000002', #上面截图,且要与master的参数一致-> master_log_pos=9992929; #上面截图,且要与master的参数一致mysql> start slave;

查看slave从机的状态

mysql> show slave status \G

图中2个yes 代表设置成功

关闭掉主数据库的读取锁定,并测试,两个yes,并且从的 Read_Master_Log_Pos 与主的Position一致,则ok.

从数据库可能会比主数据库的小,多执行几次看数据是否一致在变化,并接近,因为主从同步有延迟.

在主数据库上新建一个数据库看一下,

master:mysql> create database test1;mysql> SHOW DATABASES;slave:mysql> SHOW DATABASES;

如果test1,出现在slave,说明主从同步成功.

 

 

转载于:https://my.oschina.net/ToFlySeif/blog/1802322

你可能感兴趣的文章
简单对比WDCP与宝塔面板WEB环境区别与选择建议
查看>>
PostgreSQL全文检索简介
查看>>
Canvas学习:globalCompositeOperation详解
查看>>
C语言轻松高效学习方法之:多种方法实现
查看>>
javascript--Object遍历
查看>>
网络协议详解
查看>>
【Java动态性】之反射机制 reflection
查看>>
前端框架是什么?十个主流web前端框架分析
查看>>
第一章 计算机工作原理
查看>>
Java 集合 HashMap ConcurrentHashMap
查看>>
ActiveReports 9实战教程(3): 图文并茂的报表形式
查看>>
H3C三层交换机策略路由---准入流量导入实施
查看>>
责任链模式(Chain of responsibility pattern)
查看>>
javascript学习小结-2012-05-18
查看>>
Linux 文件系统剖析
查看>>
oracle 数据文件,控制文件和参数文件全部丢失恢复
查看>>
如何编写一个稳定的网络程序(TCP)
查看>>
[20181214]open file using O_DIRECT.txt
查看>>
斐波那契数列通项公式的推导
查看>>
杀死占用8080端口的进程
查看>>