首页 数据库 mysql教程 利用本机环境搭建MySQL主从数据库_MySQL

利用本机环境搭建MySQL主从数据库_MySQL

Jun 01, 2016 pm 01:35 PM
xp系统 数据库 虚拟机

bitsCN.com

利用本机环境搭建MySQL主从数据库

 

首先来介绍一下我的配置环境

本机是XP系统 搭载MySQL5.5  IP地址为192.168.1.101(这个地址是自适用的 会随着你的工作地点的改变而改变 但不管怎么变 只要让你的虚拟机——保证能PING通就OK)

由于我没有多余的电脑 所以我决定在虚拟机里再搭建一个MySQL

虚拟机的os是CentOS5.5  MySQL为5.1.18

 

接下来保证主机和虚拟机相互能通信 我们需要知道虚拟机的IP 在虚拟机的linux里运行ifconfig命令查看eth0的ip 找到第二行 inet addr:192.168.1.115  Bcast:255.255.255.255  Mask:255.255.255.0

到主机XP中 ping 192.168.1.115  再到虚拟机中ping 192.168.1.101 ok 通信成功

 

现在来修改主从MySQL的配置文件

我将主机XP作为主数据库 虚拟机centos作为从数据库

主数据库配置文件  

在MySQL安装目录下的my.ini 不知道安装目录的就在控制台里运行show variables like 'basedir';即可

找到#SERVER SECTION [mysqld] 这一项 前面的#SERVER SECTION 表明下面的配置都是针对MySQL服务器端的

 

从数据库配置文件

是/etc/my.cnf    /etc这个文件夹存放的是linux的各种配置文件  apache php的配置文件也存于此

同样找到[mysqld]

 

现在我们已经同时打开了主从数据库的配置文件 并找到了合适的写配置项的位置

我们在my.ini里写上server-id=1,在my.cnf里写上server-id=2 对这些配置项的含义不理解的可以另行查阅资料。在这里 server-id 表示给服务器分配一个独一无二的编号 主数据库设为1 从数据库设为2

接下来继续在my.ini里添加如下选项

log-bin=filename.n                   //开启二进制日志功能 filename.n是日志文件名 要保证可写

binlog-do-db=dbname           //只把给定数据库的变化情况写进日志 即需要同步的数据库

binlog-ignore-db=dbname    //不把给定数据库的变化情况写进日志 即不需要同步的数据库

 

在继续往my.cnf里写配置项前 我们需要在主数据库上创建一个同步用户 命令如下

 

grant replication slave,reload,super on *.* to  'yongbaolinux'@'%'  identified by '123456';

 

这是一个创建数据库用户及相应权限的命令 具体用法可以查阅手册和百度

 

接下来继续在my.cnf里添加如下选项

master_host=192.168.1.101

master_user=yongbaolinux

master_password=123456

 

然后将主从数据库分别重启

以root身份进入虚拟机的从数据库 运行mysql>start slave;mysql>show slave status/G

运气好点的话你能看到如下的关键信息:

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.101

Master_User: yongbaolinux

Master_Port: 3306

.............

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

运气不好的话 就只能看到这样

Slave_IO_State:

Master_Host: 192.168.1.101

Master_User: yongbaolinux

Master_Port: 3306

..............

Slave_IO_Running: NO

Slave_SQL_Running: NO

 

第一栏是空的 也就是说没有连接上master,slave_io也没有运行 我开始以为是配置文件的问题 因为机器重启 路由器重新分配了个ip 192.168.1.102给我  于是我在my.cnf里修改master_host 为102

但是重启数据库之后发现输出信息没有任何变化 第一行依然为空 第二行的master_host依旧是101

难道my.cnf这个配置文件不起作用?后来我把它删了 MySQL依然正常启动了 我不得不说——我凌乱了

我的世界观人生观爱情观在这一瞬间彻底崩溃了 经过多方验证 MySQL的确可以脱离my.cnf的依赖 因为MySQL可以依靠默认启动参数而存在 

这下肿么办 于是乎 只能这样了 在console里修改master信息(后来得知 其实用刷新命令flush也行)

mysql>stop slave;

mysql>change master to

          >master_host='192.168.1.102',

          >master_user='yongbaolinux',

          >master_password='123456'; 

mysql>start slave;

mysql>show slave status/G

ok 现在一切正常了 输出信息被修改了

 

关于Slave_IO_Running和Slave_SQL_Running,下面还有很多废话要说

每一对master/slave系统中  都会有三个相关线程来互动完成同步工作  其中主上有一个 从上有两个 就是这个slave_io和那个slave_sql。如果一台master与多个slave相连,那么这台master上肯定有与从机数量相同的主线程  而每台slave上都只有一个slave_io和一个slave_sql.我说明白了吧 再不明白 我也么办法了

上述的输出信息显示slave_io_running为NO 就表明这个线程未启动

这三个线程是这样互动的:首先io被创建后 会连接到master上 并要求master发送二进制日志里的语句 这个二进制日志留到后面再长篇大论 master的主线程便会处理这个合理的要求  然后slave_io会读取master传递过来的语句并把它们复制到数据目录下的中继日志(relay logs)中  可见这个slave_io要做两件事 一件是发送请求(如果可以这样理解的话) 另一件是读取并保存数据   最后 slave_sql 出场了 它会读取中继日志(delay logs)中的语句并执行它们而达到更新数据的目的

 

现在来说说这个二进制日志,mysql有多种日志格式,二进制是其中一种,无论是win还是linux,二进制日志默认都是关闭的  要开启很简单 只要在my.cnf或者my.ini里写上log-bin=path,path就是日志存放路径 如果不写路径只写一个文件名 那么日志文件会被存进datadir,win是C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/data,linux是/var/lib/mysql。配置文件修改后重启 mysql 你到上述两个文件夹下会找到xxx.index 和xxx.000001,xxx是你自定义的文件名,xxx.index是日志索引文件,xxx.000001是第一个日志文件,以后会按照序号递增。(如果你啥也不指定,那么默认日志文件名为mysql-bin)

二进制文件无法正常查看,需要mysqlbinlog工具(linux下是命令)

win下打开DOS控制台,进入C:/Program Files/MySQL/MySQL Server 5.5/bin目录运行mysqlbinlog xxx.000001(linux下直接运行mysqlbinlog命令,[root@localhost xxxx]#mysqlbinlog xxxxx.000001;)

在同步操作前 里面没有sql语句 如果你进行过主数据库的操作 你会发现里面有对应的SQL语句

 

在打完收工前还有几句废话要说

如果主从数据库的数据表结构不一样  比如从机少一张表或者少某个字段之类的 那么主机进行数据的操作 即DML语句的操作 从机是没反应的 道理显而易见  都不存在那张表 怎么添加数据进去  但是由于中继日志中包含这些DML语句 所以 如果你把从机的数据库结构弄得跟主机一样后 数据便会自动同步上去——需要重启从机数据库

 

蛋似 对主机进行DDL 即数据对象的定义操作 比如加一张表 删一张表之类的 从机是会自动进行的 道理还是显而易见 因为DDL在从机上本来就是可以执行的

 

好了 现在你在主机上增删改查 从机上的数据库会自动变化 达到了主从复制的目的

 

PS:网上有神说 一主多从的架构并不是最好的架构 但目前我也不知道啥是最好的架构了 希望各位大神不吝指教 现在只是主从同步 后面还有用mysql-proxy进行读写分离

 

bitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何查看笔记本的显卡 如何查看笔记本的显卡 May 07, 2024 pm 03:40 PM

笔记本显卡在哪里看笔记本的显卡可以在我的“我的电脑”里面进行查看。打开我的电脑以后点击属性进入,然后选择显示。在显示页面中点击高级选项即可看到显卡信息。在运行里面输入“dxdiag”。若弹出一个DirectX诊断工具对话框,提示我们是否希望检查,点击确定即可。通过弹出的DirectX诊断工具界面来查看电脑的配置信息:a、下图红框内为cpu与内存信息。问题二:如何快速查看笔记本电脑显卡是否是独立显卡最简单的办法:右键点击“我的电脑”选“管理”,然后选“设备管理器”,在右边打开“显示卡”分枝,这里可

电脑主屏幕倒置什么原因 电脑主屏幕倒置什么原因 May 01, 2024 am 10:01 AM

电脑桌面倒置了怎么办1、电脑屏幕倒过来了可以通过以下方法来恢复:使用键盘快捷键:您可以使用快捷键(如Ctrl+Alt+向下箭头)来旋转屏幕,并在必要时再次使用相同的快捷键来恢复正常视图。2、首先鼠标右击桌面空白处,然后在弹出的选项中选择。接下来再依羡弊次点击中的即可将倒了的桌面转正。方法2同样是单击鼠标右磨派拿键,这次选择。3、电脑屏幕倒过来了,先在电脑桌面上单击鼠标右键,选择屏幕分辨率菜单。在打开的屏幕分辨率菜单中,点击方向设置的下拉菜单,此时选择横向的菜单选项,屏幕方向的设置完成后,最后点击

电脑设置自动重启 电脑设置自动重启 Apr 26, 2024 pm 06:10 PM

如何设置电脑自动重启1、在自己的电脑桌面上找到计算机并且鼠标右键。在弹出的窗口中,我们找到属性并且点击。进入到系统的属性以后,我们选择。2、可以在任务计划程序中设置,设置自动开机:鼠标右键单击此电脑,选择管理,进入页面。展开系统工具,点击任务计划程序,在右边点击创建基本任务。3、电脑来电自动重启设定方法首先要重启自己的电脑,用滑鼠左键点选重新启动。由于用XP系统测试,启动时间很短,启动时按住DEL进入BIOS介面。BIOS介面如下图所示,这是BIOS主介面。怎么设置电脑在断电后自动启动首先要重启

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

组装电脑可以插无线上网卡吗? 组装电脑可以插无线上网卡吗? May 08, 2024 am 09:13 AM

组装电脑可以插无线上网卡吗?首先,你这里所说的无线网卡应该是2G/3G/4G无线网卡、即无线上网卡吧?我的答案是可以。不过,你还需要一个支持USB无线上网卡的AP,比如:(仅为举栗使用,并非推荐产品)组装台式电脑能用无线网卡上网吗?网卡对于现代计算机来说可谓必不可少,没有网卡就不能上网,不管是板载网卡,独立网卡,还是无线网卡。组装电脑时,一般不会再装独立的网卡,因为现在的主板都集成了网卡,所以不需要另外再买,不过现在组装的电脑不能像笔记本一样进行无线上网,因为没有装载无线网卡,玩家可以自己根据需

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

电脑主板怎么组装? philips电脑怎么组装? 电脑主板怎么组装? philips电脑怎么组装? May 08, 2024 pm 02:22 PM

电脑主板怎么组装?拿起机箱平放,用手抓住机箱档板的拉手,将其往后拉,机箱档板就被取出。1.准备工具和材料:你需要准备一台电脑主机组装所需的所有工具和材料。这包括电脑主机本身、显示器、键盘和鼠标、电源、硬盘、内存条、处理器和散热器、2.将主机箱打开:首先,你需要将主机箱打开,以便进行后续的安装工作。通常,你可以使用螺丝刀将主机箱边角的螺丝转动,然后打开主机箱。3.安装电源:电源是电脑主机的重要组成部分,philips电脑怎么组装?正常的把三大件凑齐,塞主机箱里,挂在飞利浦显示器上,点亮,应该就欧克

See all articles