分享

数据库主从设置

 hxbmlfj 2010-03-22


数据库主从设置

应用场景:

运营系统的部分数据库要复制到通讯录的数据库中,运营数据库作为主库,通讯录数据库作为从库,建立主从关系,需要复制的运营数据库包括corpcommonX(可能多个)dsmap


注:由于运营库(主库)上同时要建运营的触发器,通讯录库(从库)上都要建通讯录的触发器,如果先设置主从再建触发器会出现触发器创建错误,所以建议在主库和从库上分别建立完数据库及触发器后再设置主从。这就要求在主库和从库上都要创建运营的数据库,注意从库上不建运营的触发器。


主从设置过程:

1、主库设置

a、打开/etc/my.cnf,修改[mysqld]里边的键值增加

  [mysqld]

server-id=1 //数据库的 id 这个应该默认是1就不用改动
log-bin=mysql-bin //
日志文件的名称,这里可以制定日志到别的目录如果没有设置则默认主机名的一个日志名称
binlog-do-db=db_name //
记录日志的数据库,包括corpcommonXdsmap

b、主库增加用户,用于从库读取主库日志。

mysql>grant replication slave,reload,super on *.* to '同步数据库的用户'@'从库的ip' identified by '同步数据库的密码'

例如:grant replication slave,reload,super on *.* to 'slave'@'202.10.78.44' identified by '123456'

c、查看主服务器的状态

mysql> show master status;

+----------------+---------+-----------------------------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------+----------+----------------------------------+------------------+

| mysql-bin.000001 | 106 | corpcommon1,corpcommon2,corpcommon3,dsmap | |

+---------------+----------+-----------------------------------+------------------+

记录 File Position 项目的值,以后要用的。

2、从库设置

从库连接主库进行测试。mysql -uslave -p123456 -h 主库ip

a、修改从库/etc/my.cnf,增加选项:

[mysqld]

server-id=2 //设置数据库 id 默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。

 master-host=db-master ip //主服务器的IP地址或者域名

 master-port=3306 //主数据库的端口号

 master-user=slave //同步数据库的用户

 master-password=pwd //同步数据库的密码

 master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差

 report-host=db-slave IP //报告错误的服务器

 b.启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start" 这个参数则进入到 mysql

  mysql> slave stop; //停止 slave 的服务

c.设置主服务器的各种参数

  mysql> CHANGE MASTER TO

  -> MASTER_HOST='master_host_name', //主服务器的IP地址

  -> MASTER_USER='slave', //同步数据库的用户

  -> MASTER_PASSWORD='pwd', //同步数据库的密码

  -> MASTER_LOG_FILE='mysql-bin.000001', //主服务器二进制日志的文件名,前面要求记住的参数

  -> MASTER_LOG_POS=106; //日志文件的开始位置(前面要求记住的参数)

例:CHANGE MASTER TO MASTER_HOST='202.10.78.45',MASTER_USER='slave',MASTER_PASSWORD= 123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;

 d.启动同步数据库的线程

  mysql> slave start;

3、检查主从服务器的状态

  mysql> SHOW PROCESSLIST\G

//可以查看 mysql 的进程看看是否有监听的进程

mysql>show slave status\G;

//见到以下状态,OK了!

//Slave_IO_Running: yes

//Slave_SQL_Running: yes

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多