最近想自己去搭建mysql集群和读写分类,因为没有实际项目,所有一切都是我自己搭建的方法,如有问题还望指教
1 在虚拟机上准备mysql 5.5*的环境 mysql -V
1)centos6.5 192.168.239.129 msyql 5.5.27 打算用作从服务器
2)ubuntu14 192.168.239.128 mysql 5.5.39  主服务器
2 主服务上的配置
查看mysql是否启动:ps aux |grep mysqld
通过命令行登录管理MySQL服务器: ./usr/local/mysql/bin/mysql -u root –p
我的数据库是所有人都连接,所以不用授权,如需要授权则:GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.239.129' identified‘password’;
然后查看主数据库状态:show master status;
PS:记录下mysql-bin.000007 107
3 配置从数据库
修改从服务器的配置文件/etc/my.cnf
将 server-id = 1修改为 server-id = 10,并确保这个ID没有被别的MySQL服务所使用。
重启mysql数据库:/ete/init.d/mysqld restart
然后进去mysql库中:执行如下配置
change master to
master_host='192.168.239.128',
master_user='rep1',
master_password='root',
master_log_file='mysql-bin.000007',
master_log_pos=256;正确执行后启动Slave同步进程
mysql> start slave;主从同步检查
mysql> show slave status\G其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
(1)主数据库进行锁表操作,不让数据再进行写入动作
mysql> FLUSH TABLES WITH READ LOCK;(2)查看主数据库状态
mysql> show master status;(3)记录下 FILE 及 Position 的值。
将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。(4)取消主数据库锁定
mysql> UNLOCK TABLES;主服务器上的操作
在主服务器上创建数据库first_db
mysql> create database first_db;
Query Ok, 1 row affected (0.01 sec)在主服务器上创建表first_tb
mysql> create table first_tb(id int(3),name char(10));
Query Ok, 1 row affected (0.00 sec)在主服务器上的表first_tb中插入记录
mysql> insert into first_tb values (001,’myself’);
Query Ok, 1 row affected (0.00 sec)在从服务器上查看
mysql> show databases;
=============================
+--------------------+
| Database |
+--------------------+
| information_schema |
| first_db |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
=============================
数据库first_db已经自动生成mysql> use first_db
Database chagedmysql> show tables;
=============================
+--------------------+
| Tables_in_first_db |
+--------------------+
| first_tb |
+--------------------+
1 row in set (0.02 sec)
=============================
数据库表first_tb也已经自动创建mysql> select * from first_tb;
=============================
+------+------+
| id | name |
+------+------+
| 1 | myself |
+------+------+
1 rows in set (0.00 sec)
=============================
记录也已经存在由此,整个MySQL主从复制的过程就完成了,接下来,我们进行MySQL读写分离的安装与配置。
三、MySQL读写分离
数据库Master主服务器:192.168.239.128
数据库Slave从服务器:192.168.239.129
MySQL-Proxy调度服务器:192.168.239.129
 
安装配置MySQL-Proxy
目前做读写分离的中间件有Qihoo 360 Atlas、阿里包包的 cobar 、Amoeba 和mysql-proxy、MariaDB 宣布其旗下的 MaxScale 等