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; 查看是否连接上
至此配置完成!