当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql 主从服务器的简单配置

MYSQL
预防性维护MySQL数据库服务器详解
MySQL服务器内部安全数据目录访问
如何使用MySQL系统的发布与安装
关于MySQL数据库的存储引擎详细介绍
通过数据库引擎来加速MySQL数据库
关于MySQL数据库的用户认证系统分析
在MySQL中获得更好的全文搜索结果
教你如何使用触发器管理MySQL数据库
保护MySQL数据库中重要的数据注意事项
用新的PHP插件实现MySQL为基础的事务
MySQL 4.1数据库中数据转换注意事项
优化MySQL数据库查询的三种方法简介
MySQL数据库批量导入脚本
MySQL中如何灵活运用tips功能
向你介绍MySQL数据库备份的简单知识
通过PHP连接My SQL的两种方法简介
MySQL数据库账户授权的相关管理解析
用Perl DBI连接MySQL数据库
MySQL数据库安全配置
快速修复mysql数据库

MYSQL 中的 mysql 主从服务器的简单配置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 106 ::
收藏到网摘: n/a

首先呢,需要有两个mysql服务器。如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样。我用的是一个是默认的3306,从服务器用的是3307端口。 首先在主服务器上添加可登陆的用户权限:
GRANT REPLICATE SLAVE on *.* to 'username'@'host' identified by 'password'
然后设置主服务器的my.ini文件。
server-id=1 #主服务器标识
log-bin #启用二进制日志
binlog-do-bin=databasename #要备份的数据库名称,多个可以重复该配置过程
binlog-ignore-db=databasename #不备份的数据库名称,多个可以重复该配置过程
从服务器的配置
server-id=2 #从服务器标识,范围1---2E32-1
master-host=hostname/hostip #主服务器ip或主机名称
master-user=username #登陆主服务器的用户名
master-password=password #登陆主服务器的密码
master-port = portid #主服务器的运行端口号
replicate-do-db=databasename #要同步的数据库名称,多个可以重复该配置过程
replicate-ignore=db=databasename #不同步的数据库名称,多个可以重复该配置
log-bin #从服务器启动二进制日志记录
master-connect-retry = seconds #与主服务器断开连接后,重新自动连接的时间
skip-start-slave #防止随服务器的启动而启动同步程序
至此,一个简单的主从服务器配置完成。
在master服务器端可运行的命令:
show master status;#查看主服务器的运行状态
show slave hosts;#查看从服务器主机列表
补充:
在从服务器上使用show slave status
Slave_IO_Running,为No,则说明IO_THREAD没有启动,请执行slave start [IO_THREAD]
Slave_SQL_Running为No则复制出错,查看Last_error字段排除错误后执行slave start [SQL_THREAD]
查看Slave_IO_State字段
空 //复制没有启动
Connecting to master//没有连接上master
Waiting for master to send event//已经连上
补充:可以使用LOAD DATA FROM MASTER语句来建立slave。但有约束条件:
数据表要全部是MyISAM表,必须有SUPER权限,master的复制用户必须具备RELOAD和SUPER权限。
在master端执行RESET MASTER清除已有的日志变更,
此时slave端会因为找不到master日志无法启动IO_THREAD,请清空data目录下
relay-log.info,hosname-relay-bin*等文件重新启动mysql
中继日志文件默认的文件为hostname-relay-bin.nnn和hostname-relay-bin.index。可用从服务器的--
relay-log和--relay-log-index选项修改。在从服务器中还有一个relay-log.info中继信息文件,可用
--relay-log-info-file启动选项修改文件名。
双机互备则是两个mysql同时配置为master及slave
主服务器上的相关命令:
show master status
show slave hosts
show logs
show binlog events
purge logs to ''log_name''
purge logs before ''date''
reset master(老版本flush master)
set sql_log_bin=
从服务器上的相关命令:
slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before ''date''] 删除master端已同步过的日志