MySQL主从服务器(Replication)的设置:1.首先在主服务器上为从服务器建立一个账户。2.登录从服务器使用步骤一申请的用户名和密码访问主数据库如果可以访问代表建立用户成功。只有3.2版本以上的才支持该技术。
测试环境:
A:10.16.0.231
B:10.16.0.233
MYSQL 5.0.51a版本
MYSQL管理工具:navicat
MYSQL基本命令:
1.连接命令:mysql -h主机地址 -p密码 -u用户名
2.输入多条语句用“,”在每条语句后结尾,确认语句用“;”结尾
主备设置:
1.将A服务器上的数据库备份,本例中用的数据库名为:dotproject,可以通过navicat进行数据库备份与还原
2.在B服务器上对数据库进行备份还原。
3.在A和B服务器上,增加一个用户账号(backup)作为同步用户账号.
A: mysql> Grant replication slave on *.* to backup@'10.16.0.233' identified by '1234'; *结尾分号要打代表确认
B: mysql> Grant replication slave on *.* to backup@'10.16.0.231' identified by '1234';
注: (1). mysql> Grant 权限 on *.* to 用户账号@'允许访问的IP' identified by '用户密码';
(2). 4.0.2以前的版本, 因为不支持replication slave, 要改为 file,例如下面的语句:
mysql> Grant file on *.* to backup@'10.16.0.233' identified by '1234';
4.在B服务器上用如下命令测试backup用户能连上A服务器
c:>mysql -ubackup -p1230 -h10.16.0.231
5.停掉A和B服务器上的mysql服务。
6.A 服务器为 master:
server-id=1
log-bin=backuplog #设置需要记录log 可以设置log-bin=backuplog 设置日志文件的名称,
#日志文件在mysql数据库文件夹根目录下,mysql将建立不同扩展名,文件名为backuplog的几个日志文件。
binlog-do-db=dotproject #指定需要日志的数据库
重起数据库服务。
B 服务器为 slave:
server-id=2
master-host=10.16.0.231
master-user=backup #同步用户帐号
master-password=1230
master-port=3306 #默认端口
master-connect-retry=60 #预设重试间隔60秒
replicate-do-db=dotproject #告诉slave只做dotproject数据库的更新
#在mysql数据库文件夹根目录下,会自动生成一个master.info的日志文件,
#获取master服务器数据库的更新信息。
注:由于设置了slave的配置信息,mysql在数据库目录下生成master.info。
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。
7.启动A服务器mysql服务。
8.输入show master status; #查看主服务器的状态
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| backuplog.000003 | 16443 | dotproject | manual,mysql |
+-----------------+----------+--------------+------------------+
记录File 和 Position 项目的值backuplog.000003和16443。
8.在B服务器上,停止slave的服务
slave stop;
9.在从机上设置主服务器的参数 *每句后面逗号要添加
mysql> CHANGE MASTER TO