mysql主从配置

MySQL Replication需要注意的问题

Deadly 提交于 2019-11-29 07:50:20
MySQL Replication 大家都非常熟悉了,我也不会写怎么搭建以及复制的原理,网上相关文章非常多,大家可以自己去搜寻。我在这里就是想总结一下mysql主从复制需要注意的地方。有人说主从复制很简单嘛,就是master,slave的server_id不一样就搞定。确实,简单的来说就是这么简单。但是真正在生产环境我们需要注意的太多了。首先说说主库宕机或者从库宕机后复制中断的问题。 虽然很多知识点或许我博客其他文章中都有提到过,或者重复了,但是我还是想总结一下。 主库意外宕机 如果没有设置主库的sync_binlog选项,就可能在奔溃前没有将最后的几个二进制日志事件刷新到磁盘中。备库I/O线程因此也可一直处于读不到尚未写入磁盘的事件的状态中。当主库从新启动时,备库将重连到主库并再次尝试去读该事件,但主库会告诉备库没有这个二进制日志偏移量。解决这个问题的方法是指定备库从下一个二进制日志的开头读日志。但是一些事件将永久丢失。可以使用前面文章提到的工具来检查主从数据一致以及修复 pt-table-checksum 。即使开启了sync_binlog,myisam表的数据仍然可能在奔溃的时候损坏。对于innodb表,如果innodb_flush_log_at_trx_commit没有设置为1,也可能丢失数据,但是数据不会损坏。 因此主库的参数建议开启 sync_binlog=1

mysql主从复制

江枫思渺然 提交于 2019-11-29 07:33:27
1、主从服务器分别作以下操作 : 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3、修改从服务器slave: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 4、重启两台服务器的mysql /etc/init.d/mysql restart 5、在主服务器上建立帐户并授权slave:  登录MySQL服务器。 #mysql -uroot -pmttang  在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。 mysql> CREATE USER 'mysync'@'10.29.255.168' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'10.29.255.168' IDENTIFIED BY

mysql主从复制

自古美人都是妖i 提交于 2019-11-29 07:32:48
1、主从服务器版本一致(主版本可低于从版本) 2、网络连通性 3、一个拥有复制权限的账户,便于从服务器进行复制 4、干净的环境,没有RPM包安装过的mysql 版本:5.6.13 二进制版本: http://dev.mysql.com/downloads/mirror.php?id=413946 源码版本 http://dev.mysql.com/downloads/mirror.php?id=413981 -1 mysql的安装 groupadd mysql useradd -g mysql mysql tar xv mysql* cd mysql* *******************************编译安装********************************* (若为二进制版本,则不需要这一步) cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_DEBUG=0 \ -DMYSQL_USER=mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ (配置文件不满意,可以删除目录下的CMakeCache.txt) make &&

mysql主从复制实现数据库同步

♀尐吖头ヾ 提交于 2019-11-29 07:32:33
mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过。趁着这段时间相对空闲,也就自己实现一遍。尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录。 环境: 主服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.107 从服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.109 主服务器test数据库 CREATE TABLE `menber` ( `name` varchar(255) DEFAULT NULL default '', `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; insert into `menber` (`name`, `id`) values('zhangsan','1'); insert into `menber` (`name`, `id`) values('lisi','2'); insert into `menber` (`name`, `id`) values('王五','3'); mysql默认配置文件,如不特殊指定默认为/etc/my.cnf mysql

mysql 主从复制

旧城冷巷雨未停 提交于 2019-11-29 07:32:04
主服务器 修改my.cnf文件,vi /etc/my.cnf:  打开log-bin 日志,找到log-bin=mysql-bin,去掉前面的#号。 server-id,主从数据库的id不能一样。 授权用户, grant all on *.* to user1@192.168.92.136 identified by "456" grant all replication slave on *.* to user1@192.168.92.136 identified by "456" 重启数据库,然后在主数据库,show master status;查看当前数据库 binlog-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行 binlog-ignore-db=mysql #不同步mysql系统数据库 从服务器: 修改my.cnf replicate-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行 replicate-ignore-db=mysql #不同步mysql系统数据库 slave stop change master to master_host='192.168.145.222',master_user='tb',master_password='q123456

mysql 主从复制

十年热恋 提交于 2019-11-29 07:31:55
之前mysql安装已经写过,这里不再做重复工作。 这里我准备了两台虚拟机(192.168.40.128:mini1 192.168.40.130:mini2),分别配置分别在此环境下创建账户mini1、mini2 CREATE USER ‘username '@' localhost ' IDENTIFIED BY ‘userpassword' ; 创建好账户后,需要为账户赋予远程访问的权限 权限修改完记得刷新。 我们这里以192.168.40.130为从机,以192.168.40.128为主,分别修改他们的配置文件 vi /etc/my.cnf 先加入log-bin=mysql-bin #开启二进制日志配置 这里的server_id两台机器必须不同,其他无所谓,binlog-do-db此项是需要同步的数据库,我这里配置就是需要同步test,两台机器配置需相同,还有一些其他配置,感兴趣的可以去查查,我这里只为演示列出最基本的4个,不影响环境搭建 (注:两台机器需要同步的数据库中的表必须完全相同,不然会导致数据回滚,slave关闭运行,如果遇到可以查看数据回滚的报错信息来分析,如果数据添加失败可以通过“show slave status\G”命令查看到错误原因) 两台机器环境都重启ok后,下一步需要在主机器上输入“show master status

MySQL主从复制

你。 提交于 2019-11-29 07:31:41
CentOS7下安装MySQL,参考:https://www.cnblogs.com/silentdoer/articles/7258232.html 环境配置: Master 操作: 1. 接入 mysql 并创建主从复制的用户 create user m2ssync identified by 'Qq123!@#'; 2. 给新建的用户赋权 GRANT REPLICATION SLAVE ON *.* TO 'm2ssync'@'%' IDENTIFIED BY 'Qq123!@#'; 3. 指定服务 ID , 开启 binlog 日志记录, 在/etc/my.cnf中加入 server-id=137 #开启binlog日志 log-bin=dbstore_binlog #binlog日志记录只做db_store这个db binlog-do-db=db_store 4. 通过 SHOW MASTER STATUS; 查看 Master db 状态 Slave 操作: 1. 指定服务器 ID , 指定同步的 binlog 存储位置, 在/etc/my.cnf 中加入 server-id=101 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index read_only=1 #slave只处理db

Mysql 5.7 主从复制

时间秒杀一切 提交于 2019-11-29 07:31:24
Mysql 5.7 版本主从复制 准备事项 确保两台服务器的Mysql版本一致 (本文是5.7); 明确两台服务器IP master : 192.168.33.10 slave : 192.168.33.11 要保证防火墙3306端口开放 配置master 修改配置文件 /etc/mysql/mysql.conf.d/mysql.cnf (根据自己安装的路径 如: /etc/my.cnf) 1 [mysqld] 2 log-bin=mysql-bin 3 server-id=1 4 binlog-ignore-db=information_schema 5 binlog-ignore-db=performance_schema 6 binlog-ignore-db=sys 7 binlog-ignore-db=mysql 8 binlog-do-db=test 其中 log -bin 是日志类型(前缀) server -id = 1 是用于标识唯一的数据库,在从库必须设置为不同的值 binlog -ignore -db 表示同步的时候忽略的数据库    binlog -do -db 指定需要同步的数据库 重启Mysql sudo service mysql restart 进入mysql,mysql -uroot -p,回车,输入mysql密码进入。赋予权限 赋予从库权限账号

mysql主从配置

人走茶凉 提交于 2019-11-29 07:29:18
1 部署环境 主(master_mysql):192.168.1.5 OS:Centos 7.2 从(slave_mysql):192.168.1.6 OS:Centos 7.2 2主配置(master_mysql配置) vi /etc/my.cnf server-id=1 #设置主服务器的ID innodb_flush_log_at_trx_commit=2 # sync_binlog=1 #开启binlog日志同步功能 log-bin=mysql-bin-5 #binlog日志文件名 binlog-do-db=IOT1 # 这个表示只同步某个库 3配置完成后,重启主库的mysql service mysqld restart 登录mysql mysql -u root -p mysql>grant replication slave on . to ‘mark’@’192.168.1.%’ identified by 123456’; 授权给从数据库服务器用户名mark,密码123456,192.168.1.%使用通配符表示该网段下所有服务器均可使用 mysql>show master status ; ##查看主库的状态 file,position这两个值很有用,记一下。要放到slave配置中 1 row in set (0.00 sec) 4从配置(slave

Window环境下配置MySQL 5.6的主从复制

有些话、适合烂在心里 提交于 2019-11-29 07:26:18
原文: Window环境下配置MySQL 5.6的主从复制 1、环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 2、配置新数据库的主从复制 2.1、修改主库配置文件 先在主数据库中创建新数据库rep_test。 然后编辑主数据库的 my.ini 文件 在 [mysqld] 节点中增加或修改如下内容: server-id=1 #指定唯一的ID,1至32,必须的 log-bin=mysql-log-bin #指定二进制日志存放路径,必须的 binlog-do-db=rep_test #指定要同步的数据库,必须的 #binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项 2.2、配置主库备份账户 重启主数据库,然后在主数据库中建立一个备份账户 mysql>grant replication slave on *.* to slave@192.168.103.208 identified by 'slave123' ; mysql>flush privileges; PS:identified by 指定的slave是账号slave@192.168.1.128 的密码 2.3、查看主服务器状态 显示主服务器的状态信息,并且找到File 和