我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价值千金啊),所以我们还是乖乖做同步把!

1、准备两台Linux服务器(主、从)

2、安装好Mysql

3、在配置文件/etc/my.cnf(MySQL中为mysql.ini)修改开启二进制日志

log-bin=mysql-bin

修改方法:打开配置文件后在

[mysqld]中添加内容:

server-id =   #确保在整个MySQL集群中唯一

log-bin=/var/log/mysql/mysql-bin.log  #日志存放位置

log-bin-index = binlog.index

4、重启mysql服务​

service mysql restart

5、查看配置是否正常

​show variables like 'log-bin';

6.开始主从复制

第一步:在主服务器中创建一个从服务器中可以登陆的MySQL用户

mysql>GRANT REPLICATION SLAVE ON *.*TO '用户名'@'从服务器ip' IDENTIFIED BY '密码';

mysql>FLUSH PRIVILEGES;

第二步:查看主服务器MySQL二进制文件名和位置

mysql> SHOW MASTER STATUS;

第三步:告知二进制文件名和位置

在从服务器中执行(注意标点符号,最后才是分号)

mysql > CHANGE MASTER TO

      >MASTER_HOST='主服务器地址',

      >MASTER_USER='创建的用户名',

      >MASTER_PASSWORD='密码',

      >MASTER_LOG_FILE='mysql-bin.000048(根据自己的修改)',

      >MASTER_LOG_POS=(自己修改);

完成主从复制;

7、测试主从复制

在从服务器中执行

mysql > START SLAVE;      #开启复制mysql

      > SHOW  SLAVE  STATUS\G;  #查看主从复制是否成功
                数据库同步成功

当看到Slave_IO_Running: YES、Slave_SQL_Running:

YES才表明状态正常

8、实际测试:

登陆主服务器主MySQL:show database;

登陆从服务器MySQL:show databases;

主数据库进行如下操作:

(1)创建数据库和表

​create database test; use test;

create table tab1(id int auto_increment,name varchar(),primary key(id));

show databases;

show tables;

(2)从数据库也查看数据库和表,看数据是否同步了

9、出错请看

问题一:mysql服务器启动不了

出错:Starting MySQL... ERROR! The server quit without updating PID file

解决办法:找到mysql安装目录下面的data目录,删除mysql-relay-log.index

问题二:不能同步

进入slave服务器,运行:

mysql > show slave status\G;

        .......

解决办法一:

Slave_SQL_Running: No

1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:

解决办法二:

mysql > stop slave;

mysql > set GLOBAL SQL_SLAVE_SKIP_COUNTER=;

mysql > start slava;

注意:如果实在不行就在从服务器里边执行如下操作

mysql > stop slave; 

      >reset  slave;

      > 重新配置同步(见第六步)

      >start  slave;

至此数据库同步完成!

     当你发现自己的才华撑不起野心时,就请安静下来学习吧!

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数
  2. java-阻塞队列
  3. 无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护 的解决方案
  4. HTTP Status Code [RFC]
  5. Ruby注意事项
  6. C语言实现单链表-04版
  7. java基础2
  8. C++STL(vector,map,set,list)成员函数整理
  9. 集中式(SVN)和分布式(Git)版本控制系统的简单比较
  10. java StringTokenizer
  11. layer弹框插件使用
  12. 潭州课堂25班:Ph201805201 爬虫基础 第四课 Requests (课堂笔记)
  13. 2-scala集合
  14. 创建自己的OAuth2.0服务端(一)
  15. Git7:使用Gitlab管理远程仓库
  16. Kolibri v2.0-Buffer Overflow成功复现
  17. Qt多线程-QThreadPool线程池与QRunnable
  18. [Jobdu] 题目1493:公约数
  19. Java数组的十大方法
  20. ajax-解决跨域请求(基于js,jQuery的josnp,设置响应头的cors)

热门文章

  1. Seaborn实现回归分析
  2. PHP 魔术常量介绍
  3. PHP filegroup() 函数
  4. PHP min() 函数
  5. x86架构:从实模式进入保护模式
  6. 当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮
  7. 基于开源串口调试助手修改的qcom
  8. “随手记”开发记录day09
  9. JS 弹出框拖拽
  10. JQuery的turn.js实现翻书效果