• 技术文章 >数据库 >mysql教程

    mysql 主从服务器的简单配置

    2016-06-07 18:01:07原创443

    首先呢,需要有两个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端已同步过的日志
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql 主从服务器
    上一篇:java实现插入mysql二进制文件,blob类型,遇到问题及解决办法 下一篇:mysql 控制台操作
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• MySQL怎么解决delete大量数据后空间不释放的问题• mysql远程连接不上怎么办• MySQL约束与多表查询基础详解• mysql列转行函数是什么• mysql怎么删除外键关系
    1/1

    PHP中文网