最近平台要开发许多顶级域名的企业站,不得不踏上数据库集群的道路,mysql 对大型数据处理提供了集群机制,对于暴炸增长的数据,mysql 提供了 mysql cluster CGE, 他有以下特点
MySQL Cluster 为您提供以下好处: 通过自动分片实现高水平的写入扩展能力 MySQL Cluster 自动将表分片(或分区)到不同节点上,使数据库可以在低成本的商用硬件上横向扩展, 同时保持对应用程序完全应用透明。 99.999% 的可用性 凭借其分布式、无共享架构,MySQL Cluster 可提供 99.999% 的可用性,确保了较强的故障恢复能力 和在不停机的情况下执行预定维护的能力。 SQL 和 NoSQL API MySQL Cluster 让用户可以在解决方案中整合关系数据库技术和 NoSQL 技术中的最佳部分,从而降低 成本、风险和复杂性。 实时性能 MySQL Cluster 提供实时的响应时间和吞吐量,能满足最苛刻的 Web、电信及企业应用程序的需求。 具有跨地域复制功能的多站点集群 跨地域复制使多个集群可以分布在不同的地点,从而提高了灾难恢复能力和全球 Web 服务的扩展能力。 联机扩展和模式升级 为支持持续运营,MySQL Cluster 允许向正在运行的数据库模式中联机添加节点和更新内容, 因而能支持快速变化和高度动态的负载
对于我们来说,比较悲催,此套件是商业软件,但是我们可以打造自己的一套集群机制,本文主要是关于我mysql 主从配置遇到的问题
环境: master:
window 2003
mysql 5.0.45
slaver :
os : centos 6.4
mysql : 5.1.69
第一步: 打开master 主机的my.ini 写入以下内容
log-bin=mysql-bin binlog-do-db=test # backup database binlog-ignore-db=mysql # no backup database binlog-ignore-db = information_schema # no backup database
第二步:重启master mysql; 创建授权用户
GRANT REPLICATION SLAVE ON *.* TO 'mysql_slave'@'%' IDENTIFIED BY 'slave_pw'; FLUSH PRIVILEGES;
第三步 设置 slave mysql, 打开 my.cnf 设置如下:
################################################## ## data backup server-id=2 #################################################### log_bin = /var/log/mysql/mysql-bin.log server-id=2 master-host = 192.126.X.X # master IP master-user = mysql_slave master-pass = slave_pw master-port = 33179 master-connect-retry = 60 replicate-do-db = test ##################################################
第四步:打开master mysql 查看
mysql> show master status\G; *************************** 1. row *************************** File: mysql-bin.000002 Position: 1623 Binlog_Do_DB: test Binlog_Ignore_DB: mysql 1 row in set (0.00 sec) ERROR: No query specified
第五步 :重启 slave mysql 执行以下命令
mysql> slave stop; Query OK, 0 rows affected (2.00 sec) mysql> change master to master_host='192.126.X.X',master_port=33179, master_user='mysql_slave', master_password='slave_pw', master_log_file='mysql-bin.000002', master_log_pos=1494; mysql>slave start; mysql>show slave status\G;
整个配置完毕,需要注意的各个数据库之间 编码最好统一为utf8 ,还有数据库权限一定要设置好 最后一定要在slave 执行 一条修改命令并要把
master_log_file='mysql-bin.000002', master_log_pos=1494;
两个参数写好 否则会爆出以下错误
Last_IO_Errno: 1045 Last_IO_Error: error connecting to master '[email protected]:33179' - retry-time: 60 retries: 86400
ok !