mysql5.5在linux下的集群,同步和配置优化

最近想自己去搭建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;

mysql5.5在linux下的集群,同步和配置优化_第1张图片

PS:记录下mysql-bin.000007  107

3 配置从数据库

修改从服务器的配置文件/etc/my.cnf

将 server-id = 1修改为 server-id = 10,并确保这个ID没有被别的MySQL服务所使用。

重启mysql数据库:/ete/init.d/mysqld restart

mysql5.5在linux下的集群,同步和配置优化_第2张图片

然后进去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

mysql5.5在linux下的集群,同步和配置优化_第3张图片

其中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)

mysql5.5在linux下的集群,同步和配置优化_第4张图片

在从服务器上查看      
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 chaged

mysql> 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)      
=============================      
记录也已经存在

mysql5.5在linux下的集群,同步和配置优化_第5张图片

由此,整个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 等

 

你可能感兴趣的:(mysql5.5在linux下的集群,同步和配置优化)