设为首页 收藏本站
查看: 724|回复: 0

[经验分享] redhat as 5.2下mysql5 master/slave复制配置过程详解

[复制链接]

尚未签到

发表于 2016-5-15 09:30:59 | 显示全部楼层 |阅读模式
最近重新配置了mysql数据库复制,在这里做个记录吧!
服务器mysql服务器配置过程,两台服务器均为redhat as 5.2

mysql的安装过程:
  
  

  


1.确认两台服务器的MYSQL版本,mysql ?CV命令查看
注意: MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,所以最好采用相同的版本.如果达不到要求,必须要保证Master的版本不能高于Slave版本

2.在主服务器上为服务器设置一个连接账户。该账户必须授予REPLICATION SLAVE权限。
建立mysql库的时候已创建这个账户
mysql> GRANT ALL ON *.* TO repl@172.31.20.188 IDENTIFIED BY "*****"; 添加用于同步的mysql账户



正常的步骤是:
假定你的域为mydomain.com,想要创建用户名为repl的一个账户,从服务器可以使用该账户从你的域内的任何主机使用密码slavepass来访问主服务器。要创建该 账户,可使用GRANT语句:
mysql> GRANT REPLICATION SLAVE ON *.*
->TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
如果想要在Slave上有权限执行 "LOAD TABLE FROM MASTER" "LOAD DATA FROM MASTER" 语句的话,必须授予全局的 FILE SELECT 权限:
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'rep';

3. 确保主服务器上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1232?C1之间的一个正整数值。例如:
[mysqld]
log-bin=mysql-bin
server-id=1
一般情况你打开my.cnf,已经默认是这样的设置了,里面内容看起来像下面这样:
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
如果这些选项不存在,添加它们并且重启服务器.binary logging(二进制日志)没有启用的情况下,服务器是不能称为复制主服务器的

4.在主服务器上用mysqldump导出要同步的数据库,在从服务器上导入
#mysql -u root -p jstvedu < jstv04.sql

5.停止从服务器
#service mysqld stop
my.cnf文件中添加下面的行:
[mysqld]
server-id=slave_id
slave_id值同Master_id值一样,必须为1232?C1之间的一个正整数值。并且,从服务器的ID必须与主服务器的ID不相同。例如:
[mysqld]
server-id=2


6.启动从服务器。
#service mysqld start


7.在从服务器上执行下面的语句:
mysql> CHANGE MASTER TO MASTER_HOST='172.31.20.187’;
//写主服务器的名称或者IP
-> MASTER_USER='repl',
//写用来复制的帐号
-> MASTER_PASSWORD='xxx',
//复制帐号的密码,这里就是指root的密码
-> MASTER_LOG_FILE='mysql-bin.000001',
//之前记录的日志名
-> MASTER_LOG_POS=947;
//之前记录的偏移量

Jstvedu2服务器运行的命令
mysql> CHANGE MASTER TO MASTER_HOST='172.31.20.187', MASTER_USER='repl', MASTER_PASSWORD='jstv2009', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=18106800 ;

返回:
Query OK, 0 rows affected (0.01 sec)
下面的表显示了字符串选项的最大长度:
Master_Host60
Master_USER16
Master_PASSWORD32
Master_Log_File255


8.启动从服务器线程:
mysql> START SLAVE
执行这些程序后,从服务器应连接主服务器,并补充自从快照以来发生的任何更新。

测试:
在从服务器上查看
mysql> SHOW SLAVE STATUS/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.31.20.187
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 400061
Relay_Log_File: mysqld-relay-bin.000017
Relay_Log_Pos: 28856
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
Last_Error: Error 'Duplicate entry '17528' for key 1' on query. Default database: 'jstvedu'. Query: 'INSERT INTO mdl_log (time, userid, course, ip, module, cmid, action, url, info)
VALUES ('1238637224', '28', '1', '172.26.31.45', 'user', '0', 'login', 'view.php?id=0&course=1', '28')'
Skip_Counter: 0
Exec_Master_Log_Pos: 348186
Relay_Log_Space: 80731
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Maste

红色标示显示出从服务器的两个线程已经启动.

在从服务器上可以查看线程运行状态
mysql> SHOW PROCESSLIST/G
*************************** 1. row ***************************
Id: 3
User: root
Host: localhost
db: test
Command: Query
Time: 0
State: NULL
Info: SHOW PROCESSLIST
*************************** 2. row ***************************
Id: 18
User: system user
Host:
db: NULL
Command: Connect
Time: 43
State: Waiting for master to send event
Info: NULL
*************************** 3. row ***************************
Id: 19
User: system user
Host:
db: NULL
Command: Connect
Time: 4294966771
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
3 rows in set (0.00 sec)

在主服务器上做一个update的语句,从服务器立刻就会同步更新.配置完成.
  
  
使用redhat as 5自带的mysql 5.0.45,需要做以下工作
1) 更换配置文件
#cp /usr/share/doc/mysql-server-5.0.45/my-huge.cnf /etc/my.cnf
使用mysql huge的配置,支持大的访问量
2) 重启mysql,导入备份文件,修改root密码
#service mysqld restart 重新启动mysql
#mysql -u root -p jstvedu < jstv04.sql 导入jstvedu数据库备份文件
# mysqladmin -uroot -p password ****修改mysql root密码

3)设置服务器重启时mysql自动启动
chkconfig --level 345 mysqld on
4) 安装 mysql-devel-5.0.45-7.el5.i386.rpm包,php5.2编译时要用到的,否则php5.2无法编译成功

#cd /root/php
#rpm -ivh mysql-devel-5.0.45-7.el5.i386.rpm

5) 添加mysql用户
#mysql -uroot -p
输入密码
mysql> GRANT ALL ON *.* TO repl@172.31.20.188 IDENTIFIED BY "*****"; 添加用于同步的mysql账户
mysql> GRANT ALL ON jstvedu.* TO jstv@172.31.20.188 IDENTIFIED BY "*****"; 备份服务器访问数据库的账户
  mysql> GRANT ALL ON jstvedu.* TO jstv@localhost IDENTIFIED BY "*****";

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217149-1-1.html 上篇帖子: RedHat 9.0下Apache+PHP+MySQL服务器安装配置 下篇帖子: Redhat_Linux中JDK的卸载和安装,Redhat_Linux搭建FTP服务,Redhat安装Apache和SVN,Mod_Proxy+Apache+T
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表