电脑技术网——专业手机电脑知识平台,关注科技、手机、电脑、智能硬件
MySQLMSSQLAccessOracle

Ubuntu16.04下解决问题MySQL主从复制

2020-09-27 13:23:28 出处:[ 菜菜电脑网 ] 人气:次阅读

因为这两天业务需求量不是很多,昨天好几次研究了下MySQL的主从同步。

期间也碰到了许多问题,责怪之后则会想到,也偷偷地记录下自己的扎根经历。所以写成这篇博文。

因为我是在VM虚拟机上透过的测试。

所以首先要把虚拟机的链接模式改以桥接模式。

在设置->硬件->网络适配器->网络连接里更改称桥接模式。

如果不是采用root用户提出申请,建议 sudo su 读取到Root用户配备,那就须要Pardosa是 sudo 了。

然后设置IP为静态IP,在终端里转换

vi /etc/network/interfaces

锁住之后变更文件,提高下列代码。

#interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopbackauto ens33iface ens33 inet staticaddress 192.168.6.119netmask 255.255.255.0gateway 192.168.6.2#dns-nameserver 119.29.29.29

ens33是通过ifconfig命令来进行转发的,每个人似乎不一样。有人似乎是eth0或者其他。这点千万不要不对否则可能会连不上网络。

分别对主和从服务器进行上述操控,我的主服务器IP是192.168.6.119,从是192.168.6.200。

Ubuntu也可以通过图形界面的设置来设置静态IP。

 分别在此之后主从服务器的网卡。

提示能否互相ping通对方。

 

然后依次下载安装MySQL。在线配置还是很只需的。

apt-get install mysql-serverapt-get isntall mysql-client

 

在主从的终端分别里可用

vi /etc/mysql/mysql.conf.d/mysqld.cnf

敞开配置文件,在[mysqld]模块里原文打碎bind-address,用来意味着远程访问数据库。

并在主服务器的[mysqld]模块里加到以下代码。

server-id = 1 #server-id 服务器唯一标识log_bin = master-bin #log_bin 启动MySQL二进制日志log_bin_index = master-bin.indexbinlog_do_db = myslave #binlog_do_db 选定记录二进制日志的数据库binlog_ignore_db = mysql #binlog_ignore_db 均须不记录二进制日志的数据库

在从服务器的数据库配置文件里投身于以下代码

server-id = 2replicate-do-db =myslaverelay-log = slave-relay-binrelay-log-index = slave-relay-bin.index

 

下一步在MySQL命令行里改回选定主服务器MySQL创建者从服务器加到的账户和权限

grant replication slave,reload,super on *.* to slave @192.168.6.200 identified by 'mypassword'

分别启动主从MySQL服务。

service mysql restart

 

写明主服务器的MySQL数据库,检视主数据库状态

show master status;

做到查找出来的file_set和Position字段的值,后面则会只用。

 

在从服务器的数据库命令行里读取下列代码,用来登记Slave从服务器,联接Master主服务器

change master to master_host='192.168.6.199',master_port=3306,master_user='mydatabase',master_password='mypassword',master_log_file='master-bin.000003',master_log_pos=1698;

(master_host对应主服务器的IP地址,master_port对应主服务器的端口,master_log_file对应show master status结果显示的File列:master-bin.000003,master_log_pos对应Position列:1698,否则有可能经常出现同步不甘心。)

 

在登记slave服务器MySQL的状态下启动数据同步

start slave;

指定slave服务器MySQL的状态下查询同步状态

show slave status\G;

上面两个都为Yes的时候为同步出乎意料,如果Slave_IO_Running为connecting时有可能是用来登记Slave从服务器,连通Master主服务器里面的密码或者用户名读取错误,

或者是网络连接不失败,到底虚拟机的IP地址是否是你设置的IP。

 

如果Slave_IO_Running为NO 则

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

©CopyRight 2008-2020 caicaipc.com Inc All Rights Reserved.
菜菜电脑网 版权所有 联系QQ:173533152
备案号:苏ICP备19057673号-2