mysql 5.5以上主从同步配置

【mysqld】

expire_logs_day=20; 

1.主库编辑my.cnf:

[mysqld]

log-bin=NEW_NAME

server-id=1     #配一个唯一的ID编号,1至32。

#设置要进行或不要进行主从复制的数据库名,同时也要在Slave 上设定。

binlog-do-db=数据库名1

binlog-do-db=数据库名2

binlog-ignore-db=数据库名1

binlog-ignore-db=数据库名2

mysql> grant replication slave on *.* to [email protected] identified by '123456' ;

mysql> flush privileges;

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000008 |      337 |              |                  |

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

记录下二进制日志文件名和位置

 

2.从库编辑my.cnf,把server-id改成不和主机相同的数字。

如果只想同步指定的数据库,可以添加  replicate-do-db = yourdatabase,

同步几个就复制几个,把数据库名改了就好。

[mysqld]

server-id=2     #唯一

#设置要进行或不要进行主从复制的数据库名,同时也要在Master 上设定。

replicate-do-db=数据库名1

replicate-do-db=数据库名2

replicate-ignore-db=数据库名1

replicate-ignore-db=数据库名2

 

mysql> change master to master_host='192.168.1.100',master_user='slaveuser',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;

mysql> start slave;

mysql> show slave status\G;

如果出现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上两项都为Yes,那说明没问题了。如果指定了个别的数据库,还可以看到

注:如果出现Slave_SQL_Running:connecting的现象,首先在从库命令行下输入:

#mysql -uslaveuser -h 192.168.1.100 -p123456

看是否能登入mysql,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确。

 

如果开始的环境不是主从架构,跑了一段时间已经有了数据,这时候要先在主机上加锁:flush tables with read lock

打包主机的数据目录:#tar zcf  /tmpdatabak.tgz /opt/data,拷贝这个压缩包到从机,解压后,做主从的配置。

然后解锁:unlock tables


在用客户端及其远程连接服务器Mysql数据库的过程中,出现下面问题:

问题代码代码

  1. ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.227.4' (111)  

      这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mysql -h命令进行访问,若访问就会出现上出问题,因为此时Mysql只接受localhost,所以需要把bind-address屏蔽掉。


注:以上只是一主一从,接下来研究Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。


你可能感兴趣的:(mysql,5.5以上主从同步配置)