数据库主从设置 应用场景: 运营系统的部分数据库要复制到通讯录的数据库中,运营数据库作为主库,通讯录数据库作为从库,建立主从关系,需要复制的运营数据库包括corpcommonX(可能多个)、dsmap。 注:由于运营库(主库)上同时要建运营的触发器,通讯录库(从库)上都要建通讯录的触发器,如果先设置主从再建触发器会出现触发器创建错误,所以建议在主库和从库上分别建立完数据库及触发器后再设置主从。这就要求在主库和从库上都要创建运营的数据库,注意从库上不建运营的触发器。 主从设置过程: 1、主库设置 a、打开/etc/my.cnf,修改[mysqld]里边的键值增加 [mysqld] server-id=1 //数据库的 id 这个应该默认是1就不用改动 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 |
|