作为linux服务器自动化运维,MySQL主从复制是初级运维工程师必须要掌握的一个技术
ab复制(主从复制)
可以让mysql实现:
1.数据的备份(主服务器的数据全部同步到从服务器)
2.可以负载均衡减小主服务器的压力
3.真正实现mysql的读写分离

配置方法
准备工作:安装MySQL
主服务器(192.168.9.2):
一、配置主数据库配置文件
1.vim /etc/my.cnf   #server-id不允许重复
[mysqld]
log-bin=mysql_bin
server-id=1
二、备份主数据库(全备)、拷贝到从服务器上
mysqldump -uroot -proot --all-database > /tmp/all_backup.sql (主服务执行全备)
scp /tmp/all_backup.sql 192.168.9.3:/tmp
三、重启生成binlog日志
[root@node2 ~]# /etc/init.d/mysqld restart
[root@node2 ~]# cd /usr/local/mysql/var
[root@node2 var]# ll mysql_bin.*
-rw-rw---- 1 mysql mysql 209 Nov 20 06:17 mysql_bin.000001
-rw-rw---- 1 mysql mysql  19 Nov 20 06:11 mysql_bin.index
四、授权,//拷贝数据的权限:复制(replication) ;*.*是所有库的数据;slave 是自己取名;IP是从数据库的IP,然后是密码
grant replication slave on *.* to 'slave'@'192.168.9.3' identified by 'root';
mysql>show master status查看主服务器的运行状态,找到当前的日志文件和位置号
    
################# 从数据库操作 #################    
一、测试:在从上使用slave用户登录到主数据库
mysql -u slave -proot -h 192.168.9.2
二、主备份数据库导入到从数据库:(可以不用开启binlog功能),
mysql -uroot -proot < /tmp/all_backup.sql 将主服务的全备脚本拷贝到主服务器并且导入主服务器
三、修改从数据库配置文件
vim /etc/my.cnf     
[mysqld]
server-id=2    和主服务器不重复就可以
master-host=192.168.1.131 主服务器ip
master-user=slave    登录时账号
master-password=123  mysql读取配置文件时,知道是以从服务器的形式运行
四、重启从服务器的mysqld服务、启动从服务器slave状态
/etc/init.d/mysqld restart
mysql -uroot -p
mysql> slave start  或者是start slave,启动从服务器
mysql>show slave status \G 查看从服务器状态
五、验证:
cd /usr/local/mysql/var && ls  
在下面有增加这几个文件
master.info    //保存连接主数据库服务器信息
mysqld-relay-bin.000002  //存放IO进程拷贝的sql语句
mysqld-relay-bin.index  //relaybin的份数
relay-log.info     //保存relaybin日志的信息

    
四、问题:
从服务器从主服务器读取binlog产生问题时
mysql -u root -p
mysql> change master to
mysql> master_host='192.168.1.131',
mysql> master_user='slave',
mysql> master_password='123',
mysql> master_log_file='',
mysql> master_log_pos=399;

另外说明错误情况:
从数据库服务器上一定要有主数据服务器的库和表主服务器的数据不一定要有从服务器上的库和表
SQL进程方式错误的情况:执行sqlrelaybin文件里的sql语句时本机的服务里没有对应的库和表的字段的类型时就会出错
IO进程方式错误的情况如下
1、物理线路不通
2、安全设置限制了对数据库服务的访问
3、用来访问主数据库服务的用户信息错误
4、master.info 如果master.info文件存在,连接主数据库服务器时,读取的是此文件里的信息,而不是主配置文件里的信息
主从不同步还有其他解决方法。请看《mysql主从出现不同步,从数据库无法启动