linux mysql 主从同步配置(不同服务器)
2018-03-13 17:37
453 查看
此配置是我在本地的两台虚拟机上面测试的。(延迟同步请自行百度)主:192.168.0.102副:192.168.0.103一、安装mysql(此步略过)二、主库配置(master):1、修改mysql的配置文件,按照其他博主写的文章上面都说是在/etc/mysql/my.cnf,但是我打开该文件里面没有具体的配置参数,我用的ubuntu16.04配置文件位置:/etc/mysql/mysql.conf.d/mysqld.cnf 如果第一个路径下面没有就在第二个路径下面修改。2、修改内容:在[mysqld]中添加server-id = 1 #唯一标识log_bin = master-bin #开启二进制日志log_bin_index = master-bin.index #二进制的索引文件名binlog_do_db = my_data #指定记录二进制日志的数据库binlog_ignore_db = mysql #忽指定不记录二进制日志的数据库3、登录主服务器创建从服务器用到的账户和权限:grant replication slave on *.* to 'username' @'192.168.0.%' identified by 'pwd';(192.168.0.%通配符,表示0-255的IP都可访问主服务器,正式环境请配置指定从服务器IP,username/pwd自己设置)4、退出mysql,重启mysql: service mysql restart5、进入mysql,查看master状态:show master status;
三、从库配置(slave):1、配置文件位置同上修改内容server-id = 2 relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index理解:relay log很多方面都跟binary log差不多,区别是:从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。2、重启数据库3、登录从服务器,连接master服务器(不要复制注释)change master tomaster_host='192.168.0.102', #主库地址master_port=3306, #端口master_user='username', #配置主库的3、下面的usernamemaster_password='pwd', #配置主库的3、下面的pwdmaster_log_file='master-bin.000001', #从主库查出来的二进制文件名 (一下面的5、图片中的File)master_log_pos=2403; #从主库查出来的Position(一下面的5、图片中的Position)
4、启动slave,start slave;5、查看状态 show slave status\G;
此处箭头指向的参数均为Yes才算成功。
四、常见问题:1、二进制文件写入权限,一般不会出现这个问题。
2、如果你的本地系统是通过克隆来的,那你需要考虑两个myslq的uuid重复了的问题。解决办法:我的配置文件在:/var/lib/mysql/auto.cnf 只需要把这个文件修改名字建议不删除,重启之后会重新生成新的文件,新的uuid可解决。
3、在你配置完成后,对主库进行增删改的时候,从库会相应的进行数据的同步,但是如果你主动去对从库进行写入操作或者从库重启之后,slave会报错,解决办法:有两种:1,设置跳过错误,但是我觉得不是很好用,我说另一种手动配置的方式。先停止slave:stop slave;查询主库master状态,执行从库配置的3,4,5操作,可达到重新配置同步。
4、当出现同步失败的时候,首先查看从库的slave状态,会有报错信息,根据报错信息来进行相应的处理。show slave status;
如果是线上环境,应该还要做一些处理,比如说写一个shell脚本当slave出错的时候进行通知等。次步骤,后续可能会写在博客上。
以上是我配置完之后写的记录,中间如果有不完全的地方,请查阅百度。
三、从库配置(slave):1、配置文件位置同上修改内容server-id = 2 relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index理解:relay log很多方面都跟binary log差不多,区别是:从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。2、重启数据库3、登录从服务器,连接master服务器(不要复制注释)change master tomaster_host='192.168.0.102', #主库地址master_port=3306, #端口master_user='username', #配置主库的3、下面的usernamemaster_password='pwd', #配置主库的3、下面的pwdmaster_log_file='master-bin.000001', #从主库查出来的二进制文件名 (一下面的5、图片中的File)master_log_pos=2403; #从主库查出来的Position(一下面的5、图片中的Position)
4、启动slave,start slave;5、查看状态 show slave status\G;
此处箭头指向的参数均为Yes才算成功。
四、常见问题:1、二进制文件写入权限,一般不会出现这个问题。
2、如果你的本地系统是通过克隆来的,那你需要考虑两个myslq的uuid重复了的问题。解决办法:我的配置文件在:/var/lib/mysql/auto.cnf 只需要把这个文件修改名字建议不删除,重启之后会重新生成新的文件,新的uuid可解决。
3、在你配置完成后,对主库进行增删改的时候,从库会相应的进行数据的同步,但是如果你主动去对从库进行写入操作或者从库重启之后,slave会报错,解决办法:有两种:1,设置跳过错误,但是我觉得不是很好用,我说另一种手动配置的方式。先停止slave:stop slave;查询主库master状态,执行从库配置的3,4,5操作,可达到重新配置同步。
4、当出现同步失败的时候,首先查看从库的slave状态,会有报错信息,根据报错信息来进行相应的处理。show slave status;
如果是线上环境,应该还要做一些处理,比如说写一个shell脚本当slave出错的时候进行通知等。次步骤,后续可能会写在博客上。
以上是我配置完之后写的记录,中间如果有不完全的地方,请查阅百度。
相关文章推荐
- Linux下MySQL 5.5.21 服务器日志配置
- 【Linux系统和服务管理】MySQL服务器安装与配置(二)
- linux下不同服务器数据传输之rcp配置
- linux 服务器mysql已经配置好,远程连接不上(已解决)
- LNMP(linux+nginx+mysql+php)服务器环境配置
- linux下指定mysql数据库服务器主从同步的配置实例
- Linux下mysql主从同步备份master-slave详细配置
- LNMP服务器环境配置 (linux+nginx+mysql+php)
- linux下配置MySQL主从服务器(多服务器)
- 【MySQL】Linux + MySQL数据库服务器配置和管理(一)
- LNMP(linux+nginx+mysql+php)服务器环境配置
- LINUX/APACHE/MYSQL/PHP服务器配置
- LNMP服务器环境配置 (linux+nginx+mysql+php)
- LNMP(linux+nginx+mysql+php)服务器环境配置
- 搭建LNMP(linux+nginx+mysql+php)服务器环境配置实例教程
- LNMP(linux+nginx+mysql+php)服务器环境配置
- LNMP(linux+nginx+mysql+php)服务器环境配置
- Ubuntu下LAMP_服务器安装配置(Linux+Apache+Mysql+Perl/PHP/Python)
- linux 下配置mysql主从同步的步骤
- linux下指定mysql数据库服务器主从同步的配置实例