首页 > 代码库 > mysql主从复制--傻瓜式操作

mysql主从复制--傻瓜式操作

使用mysql主从复制的好处有:

1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。

2、在主从服务器上分开处理用户的请求,可以提升数据处理效率。

3、将主服务器上的数据复制到从服务器上,保护数据免受意外的损失。

环境描述:

新企业要搭建架构为主从复制的mysql数据库。

主服务器(mysql-master):IP地址:172.17.0.142

从服务器(mysql-slave)  :IP地址:172.17.0.45

主从服务器均可正常提供服务。

在主服务器Master上操作:
1.[root@142 ~]# vim /etc/my.cnf
log-bin=mysql-bin //
必须启用二进制日志
server-id=1 //服务器id
将log-slave-updates注释掉

2.[root@142 ~]# mysql -uroot -paixocm
root@(none) 03:04>grant replication slave on *.* to ‘slave‘@‘172.17.0.45‘ identified by ‘aixocm‘; //---
建立一个内部复制通信用户
3.root@(none) 03:04>show master status;
+----------------------------+------------------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------------+------------------+--------------+------------------+
|
mysql-bin.000006 |342 | | |
+--------------- ------------+----------+--------------+------------------+
1 row in set (0.00 sec)

在从服务器Slave上操作
1.[root@45 ~]# vim /etc/my.cnf
log-bin=mysql-bin
server-id=2
将log-slave-updates打开

2.root@(none) 00:17>stop slave;
Query OK, 0 rows affected (0.00 sec)
3.root@(none) 00:17>change master to master_host=‘172.17.0.142‘, master_user=‘slave‘, master_password=‘aixocm‘,
master_log_file=‘mysql-bin.000006‘, master_log_pos=342;
Query OK, 0 rows affected (0.04 sec)
4.root@(none) 00:18>start slave;
Query OK, 0 rows affected (0.00 sec)
5.root@(none) 00:19>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.17.0.142
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 342
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes -------一定要是yes
Slave_SQL_Running: Yes -------一定要是yes


测试:
1.master上面操作新建数据库新建表
root@(none) 03:11>create database sx;
Query OK, 1 row affected (0.02 sec)
root@(none) 03:11>use sx;
Database changed
root@sx 03:12>create table sx(
-> name int);
Query OK, 0 rows affected (0.03 sec)
2.slave上面检查是否同步
root@(none) 00:21>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
|
sx |
| test |
|
+--------------------+
6 rows in set (0.00 sec)
root@(none) 00:22>use sx;
Database changed
root@sx 00:23>show tables;
+--------------+
| Tables_in_sx |
+--------------+
| sx |
+--------------+
1 row in set (0.00 sec)
显示效果如上-----恭喜你实验成功

温馨提示:
1.防火墙
2.selinux
3.网络通不通
4.pos不对
5.配置打错
6.更改配置或其他操作以后:slave stop然后再slave start

mysql主从复制--傻瓜式操作