mysql在主從和主主配置可以說是用來備份用的。主從主要是只能在主讓更改數據且只能是主的能提供服務只有當主的出現故障從的才能生效,而主主是都能更改數據和都能提供服務的。二者都能做備份用。
配置:在節點node1.a.rog上安裝mysql
1、 需要軟件mysql-5.5.15-linux2.6-i686.tar.gz
- # mkdir -vp /data/mydata
- #tar xvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local
- #cd /usr/local
- # ln -sv mysql-5.5.15-linux2.6-i686/ mysql
- # groupadd -g 3306 mysql
- # useradd -g mysql -u 3306 mysql -s /sbin/false
- # chown -R mysql.mysql .
- # chown -R mysql /data/mydata/
- # scripts/mysql_install_db --user=mysql --datadir=/data/mydata
這個時候是啓動不了數據庫的需要做以下內容:
- # cd support-files/
- # cp my-large.cnf /etc/my.cnf
- # cp mysql.server /etc/init.d/mysqld
編輯/etc/init.d/mysqld的文件加入以下內容:
datadir = /data/mydata
- 啓動msyql:
- #chkconfig –add mysqld
- #service mysqld start
在node2.a.rog上做相同的配置並能確定mysql能夠啓動。之後需要做的是關閉兩端的mysql
1、 主從服務的配置:
在node1上編輯/etc/my.cnf文件,確保開啓如下內容
- log-bin=mysql-bin
- default-storage-engine=INNODB
- binlog_format=mixed
- binlog-ignore-db=mysql 可以屏蔽某個數據庫避免同步
- server-id = 1
啓動mysql並設置授權訪問:
- MySQL>GRANT REPLICATION SLAVE ON *.* TO 'node2'@'192.168.%.%' IDENTIFIED BY 'node2';
- mysq>FLUSH PRIVILEGES;
在node2上配置:
編輯/etc/my.cnf文件:
- default-storage-engine=INNODB
- binlog_format=mixed
- binlog-ignore-db=mysql 可以屏蔽某個數據庫避免同步
- server-id = 2
啓動mysql:
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.168',MASTER_USER='node2',MASTER_PASSWORD='node2';
- mysql> START SLAVE
- mysql> SHOW SLAVE STATUS\G;
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 192.168.0.168
- Master_User: node2
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.000002
- Read_Master_Log_Pos: 107
- Relay_Log_File: station14-relay-bin.000003
- Relay_Log_Pos: 253
- Relay_Master_Log_File: mysql-bin.000002
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
至此主從服務配置好,下面驗證一下:
在node1上創建一個新的數據庫和表
- mysql>CREATE DATABASE XIAOXIAO
- 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');
- mysql> SHOW DATABASES;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | XIAOXIAO |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- mysql> SHOW TABLES;
- +--------------------+
- | Tables_in_XIAOXIAO |
- +--------------------+
- | DATA |
- | QQ |
- | user |
- | users |
- +--------------------+
在從服務器上驗證一下是否有XIAOXIAO數據庫,user表。如果有則成功
1、 主主的配置
主主服務就是node1, node2兩端既做主服務又作從服務
在node2上創建訪問授權:
- mysql> GRANT REPLICATION SLAVE ON *.* TO 'node1'@'192.168.%.%' IDENTIFIED BY 'node1';
- mysql> FLUSH privileges;
在node1上啓動slave:
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.134',MASTER_USER='node1',MASTER_PASSWORD='node1';
- mysql> flush privileges;
- mysql> start slave;
- mysql> show slave status\G; 查看是否連接上
至此配置完成!