Ubuntu16.04下实现MySQL主从复制
2018-06-18 00:07:29来源:未知 阅读 ()
因为这两天业务需求不是很多,昨天抽空研究了下MySQL的主从同步。
期间也遇到了许多问题,怕之后会忘记,也顺便记录下自己的成长经历。所以写这篇博文。
因为我是在VM虚拟机上进行的测试。
所以首先要把虚拟机的链接模式改为桥接模式。
在设置->硬件->网络适配器->网络连接里更改为桥接模式。
如果不是使用root用户登录,建议 sudo su 切换到Root用户安装,那就不用老是 sudo 了。
然后设置IP为静态IP,在终端里输入
vi /etc/network/interfaces
打开之后修改文件,增加下列代码。
#interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto ens33 iface ens33 inet static address 192.168.6.119 netmask 255.255.255.0 gateway 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-server apt-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.index binlog_do_db = myslave #binlog_do_db 指定记录二进制日志的数据库 binlog_ignore_db = mysql #binlog_ignore_db 指定不记录二进制日志的数据库
在从服务器的数据库配置文件里加入以下代码
server-id = 2 replicate-do-db =myslave relay-log = slave-relay-bin relay-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 则
stop slave;
reset slave;
start slave;
现在你在Master数据库有任何的insert,delete,update操作都会被及时的更新到Slave数据库上。
在slave数据库上停止同步命令
stop slave;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:MySql数据库基础笔记(一)
下一篇:检索数据表中重复数据
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash