mysql读写分离[转]

注意:linux自带的mysql不支持集群,需要去下载专门的版本

一、主机环境
主机:
master操作系统:centos 5.5
IP:192.168.4.66
MySQL版本:mysql-5.1.41-linux-i686-glibc23.tar.gz

从机:
slave操作系统:centos 5.5
IP:192.168.4.67
MySQL版本:mysql-5.1.41-linux-i686-glibc23.tar.gz

二、创建数据库
创建mysql用户
useradd -M mysql -s /sbin/nologin

先设置权限再初始化:
chown -R root:mysql .
chown -R mysql data
./scripts/mysql_install_db --user=mysql
cp support-files/my-medium.cnf /etc/my.cnf
ln -s mysql-5.1.41-linux-i686-glibc23 mysql
vi /etc/profile
追加
PATH=/usr/local/mysql/bin:$PATH
export PATH
. /etc/profile

启动mysql服务:
mysqld_safe --user=mysql &

设置root密码:
mysqladmin -u root password 123456

分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl;

三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=msql-bin //启动二进制日志系统
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库,避免同步mysql用户配置,以免不必要的麻烦

在master机上为slave机添加一同步帐号
grant replication slave on *.* toidentified by '123456';
flush privileges;
重启master机的mysql服务:service mysqld restart

用show master status 命令看日志情况
mysql>show master status;
+-----------------+------------+-------------------+-----------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+------------+-------------------+-----------------------+
| mysql-bin.000002 | 106 | repl | mysql |
+-----------------+------------+-------------------+-----------------------+
1 row in set (0.00 sec)


2、修改slave机中mysql配置文件
同样在[mysqld]字段下添加如下内容
注释掉server-id = 1
server-id=2
master-host=192.168.1.222
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
replicate-ignore-db=mysql //忽略的数据库

然后重启slave机的mysql
在slave机中进入mysql
mysql>start slave;
mysql>show slave status\G;
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

######################################################################
Slave_IO_Running:yes、Slave_SQL_Running:no
解决办法:
stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=106;
就是主库的show master status;状态记录。
######################################################################


3.测试同步
在主库创建
use repl;
create table newtest(id int,name char(10));

查看从库发现已经有了表newtest。

posted @   飘雪王  阅读(130)  评论(0编辑  收藏  举报
努力加载评论中...
邮箱:

xiaodin1@163.com

点击右上角即可分享
微信分享提示