基于RHEL6.0的mysql服务器复制的主主架构实现
2012-04-10 19:03
609 查看
基于[/b]RHEL6.0[/b]的[/b]mysql[/b]服务器复制的主主架构实现[/b]
说明:本文选用172.16.22.1和172.16.22.3作为主服务器
两个主服务器的软件版本应相同
两个主服务器server-id 应不同
两个主服务器互为主从,所以在这里一个主服务器即是另一个主服务器的从服务器
一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)
1.在172.16.22.1主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
(2).安装并初始化mysql-5.5.22
(3).为mysql提供主配置文件:
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
2.在172.16.22.3主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
(2).安装并初始化mysql-5.5.22
(3).为mysql提供主配置文件:
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
二、配置主服务器
1.配置主服务器(172.16.22.1):
(1).编辑/etc/my.cnf配置文件开启中继日志与二进制日志:
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
在“log-bin=mysql-bin”下面增加四项:
relay-log = relay-bin
relay-log-index = relay-bin.index
auto_increment_offset = 1
auto_increment_increment = 2
(2).建立复制权限用户:
2.配置主服务器(172.16.22.3):
(1).编辑/etc/my.cnf配置文件,更改server-id使它和主服务器(172.16.22.1)的server-id不一样,开启二进制日志和中继日志:
# vim /etc/my.cnf
找到server-id,并改为
server-id = 11
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
在“log-bin=mysql-bin”下面增加四项:
relay-log = relay-bin
relay-log-index = relay-bin.index
auto_increment_offset = 2
auto_increment_increment = 2
(2).建立复制权限用户:
(3).在从服务器(172.16.22.1)上指定它的主服务器:
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
(4).在从服务器(172.16.22.3)上指定它的主服务器:
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
三、对主服务器进行测试
在172.16.22.1上执行如下操作:
在172.16.22.3执行如下操作:
此时可以看到两个主服务器的数据库都是四个。
现在我们在主服务器(172.16.22.1)上创建一个数据库testdb和表test,看从服务器(172.16.22.3)上是否也有呢?
在172.16.22.1上执行如下操作:
在172.16.22.3上查看是否有testdb数据库以及test1表:
此时发现在172.16.22.3上有testdb数据库和test表,说明成功了一半。
现在我们在主服务器(172.16.22.3)上创建一个数据库lh,看从服务器(172.16.22.1)上是否也有呢?
在172.16.22.1上查看是否有数据库lh?
此时我们发现在172.16.22.1上有数据库lh,说明我们mysql服务器的主主架构完全实现了。本文出自 “linux技术” 博客,请务必保留此出处http://lihuan.blog.51cto.com/4391550/830959
说明:本文选用172.16.22.1和172.16.22.3作为主服务器
两个主服务器的软件版本应相同
两个主服务器server-id 应不同
两个主服务器互为主从,所以在这里一个主服务器即是另一个主服务器的从服务器
一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)
1.在172.16.22.1主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M mysql
(2).安装并初始化mysql-5.5.22
# tar xvf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.22-linux2.6-i686 mysql # cd mysql # chown -R mysql:mysql . # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data # chown -R root .
(3).为mysql提供主配置文件:
# cd /usr/local/mysql # cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
# cd /usr/local/mysql # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld start
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf # ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile
2.在172.16.22.3主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M mysql
(2).安装并初始化mysql-5.5.22
# tar xvf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.22-linux2.6-i686 mysql # cd mysql # chown -R mysql:mysql . # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data # chown -R root .
(3).为mysql提供主配置文件:
# cd /usr/local/mysql # cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
# cd /usr/local/mysql # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld start
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf # ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile
二、配置主服务器
1.配置主服务器(172.16.22.1):
(1).编辑/etc/my.cnf配置文件开启中继日志与二进制日志:
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
在“log-bin=mysql-bin”下面增加四项:
relay-log = relay-bin
relay-log-index = relay-bin.index
auto_increment_offset = 1
auto_increment_increment = 2
(2).建立复制权限用户:
# mysql mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lh@’172.16.22.%’ IDENTIFIED BY ‘123456’; mysql> SHOW GRANTS FOR lh@’172.16.22.%’;
2.配置主服务器(172.16.22.3):
(1).编辑/etc/my.cnf配置文件,更改server-id使它和主服务器(172.16.22.1)的server-id不一样,开启二进制日志和中继日志:
# vim /etc/my.cnf
找到server-id,并改为
server-id = 11
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
在“log-bin=mysql-bin”下面增加四项:
relay-log = relay-bin
relay-log-index = relay-bin.index
auto_increment_offset = 2
auto_increment_increment = 2
(2).建立复制权限用户:
# mysql mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO lihu@’172.16.22.%’ IDENTIFIED BY ‘123456’; mysql> SHOW GRANTS FOR lihu@’172.16.22.%’;
(3).在从服务器(172.16.22.1)上指定它的主服务器:
# mysql mysql> CHANGE MASTER TO -> MASTER_HOST=’172.16.22.3’, -> MASTER_USER=’lihu’, -> MASTER_PASSWORD=’123456’; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
(4).在从服务器(172.16.22.3)上指定它的主服务器:
# mysql mysql> CHANGE MASTER TO -> MASTER_HOST=’172.16.22.1’, -> MASTER_USER=’lh’, -> MASTER_PASSWORD=’123456’; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G
如果看到方框内的两项都为‘yes’的话,说明你的从服务器已经正常启动了。
三、对主服务器进行测试
在172.16.22.1上执行如下操作:
# mysql mysql> show databases;
在172.16.22.3执行如下操作:
# mysql mysql> show databases;
此时可以看到两个主服务器的数据库都是四个。
现在我们在主服务器(172.16.22.1)上创建一个数据库testdb和表test,看从服务器(172.16.22.3)上是否也有呢?
在172.16.22.1上执行如下操作:
# mysql mysql> create database testdb; mysql> use testdb; mysql> create table test ( -> Name varchar(30) not null, -> Age char(3) not null );
在172.16.22.3上查看是否有testdb数据库以及test1表:
# mysql mysql> SHOW DATABASES;
# mysql mysql> show tables; mysq> desc test;
此时发现在172.16.22.3上有testdb数据库和test表,说明成功了一半。
现在我们在主服务器(172.16.22.3)上创建一个数据库lh,看从服务器(172.16.22.1)上是否也有呢?
# mysql mysql> create database lh;
在172.16.22.1上查看是否有数据库lh?
# mysql mysql> show databases;
此时我们发现在172.16.22.1上有数据库lh,说明我们mysql服务器的主主架构完全实现了。本文出自 “linux技术” 博客,请务必保留此出处http://lihuan.blog.51cto.com/4391550/830959
相关文章推荐
- 基于RHEL6.0的mysql服务器复制的主从架构实现
- 基于SSL的mysql服务器的主从架构实现
- mysql服务器复制的主从架构半同步的实现
- 配置MYSQL服务器实现主主复制
- MySQL的复制(主主及主从架构的实现)
- 配置MYSQL服务器实现主主复制
- 基于主主复制的mysql双机热备+keepalived实现高可用性
- MySQL多主多从架构实现及主从复制问题处理 推荐
- 基于MHA的MySQL高可用架构的实现
- 基于Corosync/openais和NFS服务器实现MySQL的高可用
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- 分布式架构学习之:MyCat在MySQL主从复制基础上实现读写分离
- Mysql实现企业级数据库主从复制架构实战
- 基于semisync实现MySQL的主从半同步复制
- Mysql主主复制架构配置
- 基于mysql5.6实现的同城多IDC间的mysql部分库表数据复制方案
- mysql主从复制,半同步,主主复制架构的实现
- rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID]
- mysql之 mysql 5.6不停机主主搭建(活跃双主基于日志点复制)
- Mysql实现企业级数据库主从复制架构