linux 下mysql的主从复制技术和bin-log日志的详细说明

Posted on 2014-10-04 15:33  anyongchao  阅读(237)  评论(0)    收藏  举报

MYSQL的主从复制和分区技术主要是解决服务器负载均衡的策略。

 课程分下面四点来讲解

    1.MySQL用户授权

    2.MySQL bin-log日志

    3.MySQL主从复制

    4.MySQL分区技术

两台服务器ip为 192.168.1.123 从服务器ip为 192.168.1.124,首先保证两台服务器是畅通的状态可以相互ping通

一、MySQL用户授权

登录mysql的test数据库
mysql -uroot -p123456 test

如果我们要做主从复制 那么 我们就需要在主服务器上给从服务器授权,下面我们在主服务器上给从服务器授权一个用户,让从服务器能用此用户来访问我们的主服务器的数据库。

授权用户
grant all on *.* to user1@192.168.1.124 identified by "123456";【授权服务器地址为192.168.1.123,用户名为user1密码为123456的用户能够访问主服务器】
grant all on *.* to user1 identified by "123456";【给全部主机授权】
我们查看一下主服务器的用户
 select user,host,password from mysql.user;
发现用户表中 多了一个user1的用户 那么主机地址为192.168.1.123

那么我们测试一下 我们在从服务器上用user1看能不能登录主服务器
mysql -uuser1 -p123456 -h192.168.1.123 
测试发现成功!

二、 bin-log日志

首先我们要开启mysql的binlog日志 
编辑/etc/my.cnf文件
在[mysqld]中加入下列代码
log-slow-queries = mysql-slow.log
log-error = mysql.err
log = mysql.log
log-bin = mysql-bin
#binlog日志的文件是存放在data目录中所以 要在此设置一下datadir这个属性
datadir = /usr/local/mysql/data
#(如果找不到相应的bin-log日志的文件,那么去根目录戏/data/mysql/文件下找一下,或许是设置没有生效的原因)
# 再找不到用find命令查找,find / -name 'mysql-bin.000*' -type f -print


登录mysql
mysql -uroot -p123 test;
用到的代码指令:
flush logs; 【生成一个最新的bin-log日志】
show master status; 【查看最后一个bin-log日志】
reset master; 【清空所有bin-log日志】
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001【查看bin-log日志 前提是你当前所在目录为/usr/local/mysql/data】
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 | mysql -uroot -p123 test【把mysql-bin.000001的日志的记录恢复到test数据库】
/usr/local/mysql/mysqlbinlog --start-position="50" --stop-position="100" mysql-bin.000001 | mysql -uroot -p123 test【把mysql-bin.000001的50-100行的记录恢复到test数据库,除此之外还可以有--stop-date=""】
mysqldump -uroot -p123 test -l -F > /tmp/test.sql【备份test数据库到test.sql文件里 -l 代表读锁 -F代表flush logs】
mysql -uroot -p123 test -v -f < /tmp/test.sql【从test.sql恢复数据记录-v 代表查看导入信息 -f代表忽略错误】