Master服务器:200.200.200.50,Mysql版本:5.1
Slave服务器:200.200.200.155,Mysql版本:5.5
有的地方写Slave的Mysql版本不能小于Master的Mysql版本,但是也有要求最好一致,我觉得版本相同,应该不会造成不必要的麻烦,所以决定更新Master服务器的Mysql版本。
有大牛说可以在Master服务器上直接找升级包,网上搜索了下,没找到,放弃。
另一只大牛说可以在同一台服务器上放两个Mysql服务,同样在前面那只大牛的电脑上看装两个版本的SQLSERVER,觉得可行。但是由于我也曾试着在自己电脑上SQLSERVER2005的基础上同时安装SQL SERVER 2008,同样失败。但是还是决定试下。
安装完Mysql5.5之后,本机电脑上出现两个Mysql服务,分别是Mysql和Mysql2,修改Mysql 5.1的my.ini文件,更改端口等,然后修改Mysql5.5的My.ini文件,设置原来使用的端口。验证结果为5.1安装失败!然后尝试卸载Mysql5.1,保留Mysql5.5。然后开始--cmd--net stop mysql 成功!net start mysql之后服务不能启动了!去网上查询原因,有的说是因为两个服务冲突,只好忍痛卸载,再重装了。
首先要备份下Master服务器上的数据库。在此有三种方法可以采用:
1,备份data文件夹,由于是否存在版本差异问题,而且备份总是报错,放弃!
2,使用Mysqldump备份数据库为sql文件,然后在使用Source还原,验证部分数据库,出现未看到函数的问题,放弃!
3,在Slave服务器上创建要备份的数据库,然后使用Data Transfer导入表结构,数据,函数,视图,事件等。除了因为数据量比较大,而速度比较慢的问题外,暂未出现别的问题。
完全卸载数据库有以下几个步骤:
1,停掉Mysql服务
2,在开始--控制面板--程序--卸载程序里面,卸载Mysql5.1和Mysql5.5
3,开始->运行-> regedit 看看注册表里这几个地方删除没有
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL(未找到,没删除,验证之后可行)
4,删除mysql的basedir和datadir目录
5,删除mysql服务
打开命令行 输入 sc delete mysql 命令即可
然后在安装Mysql。
在安装之后的数据库使用Show Version() 为5.5,安装成功! 然后在Master服务器上新建要保留的数据库,然后使用Data Transfer从Slave服务器导入Master服务器。
配置主从服务器的步骤:
1,打开Master服务器的my.ini文件
在[mysqld]节点下,添加或修改一下内容:
server-id=150 #服务器ID,可以1(Master服务器)+50(Master服务器IP后两位)
log-bin=mysql-bin01 #设置二进制
binlog-do-db=txserver_xgma #这里设置需要在主服务器记录日志的数据库,只有在这里设置了的数据库才能被复制到从服务器
binlog-ignore-db=txdatacenter #这里设置在主服务器上不记度日志的数据库
binlog-ignore-db=txdatacenter_wd #这里设置在主服务器上不记度日志的数据库
binlog-ignore-db=txdatacenter_xg140401 #这里设置在主服务器上不记度日志的数据库
binlog-ignore-db=txserver #这里设置在主服务器上不记度日志的数据库
binlog-ignore-db=txserver_wd #这里设置在主服务器上不记度日志的数据库
binlog-ignore-db=txserver_xg140401 #这里设置在主服务器上不记度日志的数据库
expire_logs_days=10 #10天清理一次日志
log_slave_updates = 1
read_only=1
然后重启mysql服务
进入控制台, 执行 show master status;
执行 SHOW VARIABLES LIKE "%log_bin%"; 查看主服务器的binlog是否开启。 log_bin 这项 为 ON 的话就表示已开启。
2,在Master服务器上创建Slave服务器使用的帐号并给予相应的权限(主要是replication slave权限),为避免配置过程中出现问题,可以也给予 reload,super,file权限,配好后再跟据实际情况取消。
grant replication slave, reload,file, super on *.* to 'slave'@'200.200.200.155' identified by '1234'; #slave是用户名,1234是密码
可以在Slave服务器上创建Slave用户的连接,测试连接是否成功。
3,在Slave服务器的My.ini文件中,[mysqld]下增加或修改
server-id=255
log-bin=mysql-bin02
replicate-do-db=txserver_xgma
replicate-ignore-db=txdatacenter
replicate-ignore-db=txdatacenter_wd
replicate-ignore-db=txdatacenter_xg140401
replicate-ignore-db=txserver
replicate-ignore-db=txserver_wd
replicate-ignore-db=txserver_xg140401
expire_logs_days=10
重启Slave服务器上的mysql服务
4, 在Slave服务器的主控制台执行以下
mysql>slave stop;
mysql>change master to
master_host='200.200.200.50',
master_user='slave',
master_password='1234',
master_port=3306,
master_log_file='mysql-bin01.000004', #为步骤1中执行Show Slave Status后File的内容
master_log_pos=107 ; #为步骤1中执行Show Slave Status后Position的内容
mysql>slave start;
至此,就设置完成!如果这里有报ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO的错误,建议重启Slave的Mysql服务,然后重新执行步骤4!
为了验证mysql的Slave服务是否设置成功,在控制台中执行Show Slave Status;
显示Slave_IO_Running: Yes;
Slave_SQL_Running: Yes;则设置成功!