MySQL 主—从复制


主服务器:172.16.15.20
从服务器:172.16.15.30

1、两节点分别安装mysql

  1. # pvcreate /dev/sda5   
  2. # vgcreate myvg /dev/sda5  
  3. # lvcreate -L 10G -n mydata myvg  
  4. # mkdir -p /data/mydata  
  5. # mke2fs -j /dev/myvg/mydata   
  6. # mount /dev/myvg/mydata /data/mydata/  
  7.  
  8. # tar xf mysql-5.5.24-linux2.6-i686.tar.gz  -C /usr/local/  
  9. # cd /usr/local/  
  10. # ln -s mysql-5.5.24-linux2.6-i686/ mysql  
  11. # cd mysql  
  12. # useradd -r mysql  
  13. # chown -R mysql.mysql .  
  14. # scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql 
  15. # chown -R root .  
  16. # cp support-files/my-large.cnf /etc/my.cnf  
  17. # vim /etc/my.cnf   
  18. thread_concurrency = 2 
  19. datadir = /data/mydata  
  20.  
  21. # cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
  22. # chmod +x /etc/rc.d/init.d/mysqld  
  23. # service mysqld start 

2、配置主服务器,添加用户

  1. mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repluser@'172.16.15.%' IDENTIFIED BY 'RedHat';    
  2.  
  3. mysql>flush privileges;  
  4.  
  5. (注:一定要查看下使用的日志和日志位置,后面要用到)  
  6. mysql>show master status;  
  7. +------------------+----------+--------------+------------------+  
  8. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  9. +------------------+----------+--------------+------------------+  
  10. mysql-bin.000001 |      335 |              |                  |  
  11. +------------------+----------+--------------+------------------+  
  12. 1 row in set (0.00 sec  


3、配置从服务器

  1. # vim /etc/my.cnf  
  2. relay-log=mysql-relay   //添加中继日志  
  3. server-id       = 2    //修改ID和主的不一样  
  4.  
  5. # service mysqld restart 重启生效  
  6.  
  7. 添加以下命令  
  8. mysql> CHANGE MASTER TO MASTER_HOST = '172.16.15.20' ,  //指定主服务器  
  9.     -> MASTER_USER = 'repluser' ,   //指定用户  
  10.     -> MASTER_PASSWORD = 'redhat' ,   //密码  
  11.     -> MASTER_LOG_FILE = 'mysql-bin.000001' ,  //指定日志  
  12.     -> MASTER_LOG_POS = 355 ;    //指定日志位置  
  13.  
  14. 可以通过下面命令查看刚配置信息:  
  15. mysql> show slave status\G  
  16.  
  17. 启动从服务线程  
  18. mysql> start slave;  
  19.  
  20. 禁止从服务器写入,重启服务就失效了,应该将read_only = on 写进配置文件中:  
  21. SET GLOBAL read_only = on;  
  22.  
  23. 配置文件[mysqld]中添加如下,让从服务器的mysql服务在启动时候不要自动启动从服务线程,手动启动  
  24. skip-slave-start=1 

4、测试

  1. 主服务器上建立数据  
  2. mysql> create database tb1;  
  3. mysql> use tb1;  
  4. mysql> create table test (name varchar(10));  
  5. mysql> insert into test values ('jack'),('tom');  

查看下:

再在从服务器上看下,可以看到已经有复制过来的信息了:

  • 1
  • 2
  • 下一页

相关内容