mysql主从和主主的配置_主服务 

         mysql在主从和主主配置可以说是用来备份用的。主从主要是只能在主让更改数据且只能是主的能提供服务只有当主的出现故障从的才能生效,而主主是都能更改数据和都能提供服务的。二者都能做备份用。

配置:在节点node1.a.rog上安装mysql

1、  需要软件mysql-5.5.15-linux2.6-i686.tar.gz

  1. # mkdir -vp /data/mydata  
  2.  
  3. #tar xvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local 
  4.  
  5. #cd /usr/local 
  6.  
  7. # ln -sv mysql-5.5.15-linux2.6-i686/ mysql  
  8.  
  9. # groupadd -g 3306 mysql  
  10.  
  11. # useradd -g mysql -u 3306 mysql -s /sbin/false 
  12.  
  13. # chown -R mysql.mysql .  
  14.  
  15. # chown -R mysql /data/mydata/  
  16.  
  17. # scripts/mysql_install_db --user=mysql --datadir=/data/mydata 

这个时候是启动不了数据库的需要做以下内容:

  1. # cd support-files/  
  2.  
  3. # cp my-large.cnf /etc/my.cnf  
  4.  
  5. # cp mysql.server /etc/init.d/mysqld 

编辑/etc/init.d/mysqld的文件加入以下内容:

        datadir = /data/mydata

  1. 启动msyql:  
  2.  
  3.         #chkconfig –add mysqld  
  4.  
  5.         #service mysqld start 

    在node2.a.rog上做相同的配置并能确定mysql能够启动。之后需要做的是关闭两端的mysql

 

1、  主从服务的配置:

node1上编辑/etc/my.cnf文件,确保开启如下内容

  1. log-bin=mysql-bin  
  2.  
  3. default-storage-engine=INNODB  
  4.  
  5. binlog_format=mixed  
  6.  
  7. binlog-ignore-db=mysql 可以屏蔽某个数据库避免同步  
  8.  
  9. server-id = 1 

启动mysql并设置授权访问:

  1. MySQL>GRANT REPLICATION SLAVE ON *.* TO 'node2'@'192.168.%.%' IDENTIFIED BY 'node2';  
  2.  
  3. mysq>FLUSH PRIVILEGES

node2上配置:

 编辑/etc/my.cnf文件:

  1. default-storage-engine=INNODB  
  2.  
  3. binlog_format=mixed  
  4.  
  5. binlog-ignore-db=mysql 可以屏蔽某个数据库避免同步  
  6.  
  7. server-id = 2 

启动mysql:

  1. mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.168',MASTER_USER='node2',MASTER_PASSWORD='node2';  
  2.  
  3.    mysql> START SLAVE  
  4.  
  5. mysql> SHOW SLAVE STATUS\G; 
  1. *************************** 1. row ***************************  
  2. Slave_IO_State: Waiting for master to send event  
  3. Master_Host: 192.168.0.168  
  4. Master_User: node2  
  5. Master_Port: 3306  
  6. Connect_Retry: 60  
  7. Master_Log_File: mysql-bin.000002  
  8. Read_Master_Log_Pos: 107  
  9. Relay_Log_File: station14-relay-bin.000003  
  10. Relay_Log_Pos: 253  
  11. Relay_Master_Log_File: mysql-bin.000002  
  12. Slave_IO_Running: Yes  
  13. Slave_SQL_Running: Yes 

至此主从服务配置好,下面验证一下:

node1上创建一个新的数据库和表
 

  1. mysql>CREATE DATABASE XIAOXIAO  
  2.  
  3.   mysql> CREATE TABLE users ( ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30) NOT NULL,Age TINYINT UNSIGNED NOT NULL,Gender ENUM('F','M'NOT NULL DEFAULT 'M'); 
  1. mysql> SHOW DATABASES;  
  2.  
  3. +--------------------+  
  4.  
  5. Database |  
  6.  
  7. +--------------------+  
  8.  
  9. | information_schema |  
  10.  
  11. | XIAOXIAO |  
  12.  
  13. | mysql |  
  14.  
  15. | performance_schema |  
  16.  
  17. | test |  
  18.  
  19. +--------------------+  
  20.  
  21. mysql> SHOW TABLES;  
  22.  
  23. +--------------------+  
  24.  
  25. | Tables_in_XIAOXIAO |  
  26.  
  27. +--------------------+  
  28.  
  29. | DATA |  
  30.  
  31. | QQ |  
  32.  
  33. user |  
  34.  
  35. | users |  
  36.  
  37. +--------------------+  

在从服务器上验证一下是否有XIAOXIAO数据库,user表。如果有则成功

1、  主主的配置

主主服务就是node1, node2两端既做主服务又作从服务

node2上创建访问授权:

  1. mysql> GRANT REPLICATION SLAVE ON *.* TO 'node1'@'192.168.%.%' IDENTIFIED BY 'node1';  
  2.  
  3. mysql> FLUSH privileges

node1上启动slave

  1. mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.134',MASTER_USER='node1',MASTER_PASSWORD='node1';  
  2.  
  3. mysql> flush privileges;  
  4.  
  5. mysql> start slave;  
  6.  
  7. mysql> show slave status\G; 查看是否连接上 

    至此配置完成!