MySQL 主从分离

MySQL 主从分离

主库配置

1、/etc/my.cnf 主数据库配置

#一般已存在
server-id = 1
#需要进行复制的数据库
binlog-do-db = search
#不需要进行复制的数据库
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
#生成的同步数据所需要的文件,序号从: mysql-bin.000001开始
log-bin=mysql-bin



2、重启mysql,登陆Mysql,设置从数据库所需要的权限:可以从任何机器登陆,账号/密码:slave1/ passw0rd 
grant replication slave,reload,super on *.* to 'slave1'@'%' identified by 'passw0rd';


3、查看状态

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000005 |     7657 | search       |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.01 sec)

---------------------------------------------------------------------------------------------------

从库配置

1、/etc/my.cnf 从数据库配置,由于Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,用配置文件设置主从同步时,出现:mysqld: unknown variable 'master-host=127.0.0.1'

#将配置文件中的server-id该为2
server-id = 2

(可能不起作用,需要登录数据库后,使用show variables like 'server_id'; 查看。然后设置set global server_id=2;

#需要进行同步的数据库名称
replicate-do-db = mydatabase


2、重启mysql,登陆Mysql,设置同步设置,其中syslog.000001为日志文件,master_log_pos=0为日志开始复制的位置,即:从syslog.000001的0位置同步数据,日志文件和行号根据实际情况进行处理

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> change master to

    -> master_host='110.103.8.14',master_user='slave1',master_password='passw0rd',

    -> master_log_file='mysql-bin.000005',master_log_pos=7657,master_port=53306;

Query OK, 0 rows affected (0.10 sec)


mysql> start slave;

Query OK, 0 rows affected (0.00 sec)


show slave status\G; 命令易读性好一点




展开阅读全文

没有更多推荐了,返回首页