xuekun

1.准备工作,2台服务器都安装最好一个版本的mysql

  主:192.168.100.1

  从:192.168.100.2

  a.修改主数据库/etc/my.cnf,mysqld下添加。修改之后重启。

  [mysqld] 
  server-id=1 
  log-bin=mysqlmaster-bin.log 

  b.修改从数据库/etc/my.cnf,mysqld下添加。修改之后重启

  server-id=2
  log-bin=mysqlmaster-bin.log 

2.主库操作

    ①主库创建用于主从复制的账户

  mysql>create user sync@'192.168.100.2' identified by 'sync';
  mysql>grant replication slave on *.* to sync@'192.168.100.2';
  #注意 192.168.100.2为从库的ip地址,换成实际的。我设置的主从账户何密码都为sync,可以更换。

   ②.主库锁表,禁止再插入数据以获取主数据库二进制日志坐标。

  mysql> flush tables with read lock;

   ③新开一个会话窗口,进入mysql库,执行

  mysql> show master status;
   mysql> SHOW MASTER STATUS; 
   +------------------------+----------+--------------+------------------+-------------------+ 
   | File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
   +------------------------+----------+--------------+------------------+-------------------+ 
   | mysqlmaster-bin.000001 |      500 |              |                  |                   | 
   +------------------------+----------+--------------+------------------+-------------------+ 
   1 row in set (0.00 sec) 
  #记录file和position,稍后需要在从库配置

   ④主服务器使用mysqldump命令创建数据快照

  mysqldump -uroot -p -h127.0.0.1 -P3306 --all-databases  --triggers --routines --events >/data/all.sql

    ⑤主库解锁

  mysql> unlock tables;

3.从库服务器操作

mysql -uroot -p -h127.0.0.1 -P3306 < all.sql 
# mysql -uroot -p 
mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.1',MASTER_USER='sync',MASTER_PASSWORD='sync',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=500; 
# 然后启动从数据库的复制线程: 
mysql> start slave; 
# 查询数据库的slave状态: 
mysql>  show slave status \G 
# 下面两个参数都是Yes,说明主从配置成功! 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

4.测试,从主库创建数据库和增删改查,然后到从库去查看。

------------------------------------------end------------------------------------------------

#如果要清除主从配置,需要进入从库执行2条命令;

stop slave;
reset slave all;

分类:

mysql

技术点:

相关文章: