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

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
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
联想bios启动不u盘联想bios启动不u盘Feb 13, 2024 am 11:30 AM

谢谢悟空小秘书邀请!联想台式电脑设置bios时u盘光盘都启动不了?一般遇到此问题请先升级bios为最新版本,不过个人升级bios风险比较大,重则主板报废。还是请专业人士比较可靠。这方法教程可以参考我以往的回答。如后续有这方面的提问我会详细解答,有兴趣的朋友可以关注。首先我们从设置bios开始解答题主的问题。1:联想机子一般开机都是按F12进入bios,进入bios我们用光标移动到Security选项,意思就是安全。然后用方向键把光标移动到SecurityBoot选项,意思是安全启动。然后按键盘回

mac硬盘什么格式(mac硬盘什么格式最好)mac硬盘什么格式(mac硬盘什么格式最好)Feb 14, 2024 am 11:09 AM

前言:很多朋友问到关于mac硬盘什么格式的相关问题,本文本站就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!Macbook用移动硬盘该格式化成什么格式?第三步:为了修改硬盘格式为NTFS,你需要选择一种文件系统格式来抹掉原有的格式。然而要注意的是,使用磁盘工具是无法直接将硬盘格式修改为NTFS的。你需要安装MacNTFS读写工具,并在磁盘工具中使用该工具来格式化硬盘为NTFS。移动硬盘可以选择格式化为FAT32或NTFS两种文件系统,这两种系统都可以正常使用。然而,若选择F

mac硬盘助手dmg(mac硬盘管理软件)mac硬盘助手dmg(mac硬盘管理软件)Feb 03, 2024 pm 07:06 PM

导读:本站今天为大家分享了关于mac硬盘助手dmg的相关内容。如果这些内容能够帮助到你解决当前面临的问题,请记得关注本站。让我们开始吧!dmg是什么文件DMG是一种压缩镜像文件,在苹果公司的MacOSX操作系统中常见。它是一种磁盘镜像文件的格式,用于存储和传输文件和文件夹。DMG文件可以包含压缩的数据和元数据,可以通过解压缩工具进行解压缩和访问。2、dmg是MAC苹果机上的压缩镜像文件,相当于在Windows上常见的iso文件,DMG在苹果机上可以直接运行加载。DMG是MacOSX下一种常用的磁

u盘进入pe修复引导区u盘进入pe修复引导区Feb 13, 2024 am 10:30 AM

通常情况下电脑使用完关机后,下次开机发现进不了系统,并且导致黑屏,这多半是系统引导问题,无法正常重启。由于电脑品牌的不同,引导损坏提示也不同,如果打开非蓝屏的情况一般都是引导损坏。如果是系统文件丢失那么你只好重装系统。如果只是引导问题,且没有原始启动软盘,只能借助pe系统修复。接下来就给大家讲解如何通过U盘装机大师的pe系统进行修复引导。第一步:进入pe系统首先,你需要准备一个U盘,并下载U盘装机大师启动盘制作工具,将U盘一键制作成启动盘。制作好的启动盘内就有pe系统,通过启动快捷键进入bios

解决winXP系统中无法显示网页图片的方法解决winXP系统中无法显示网页图片的方法Jan 29, 2024 pm 05:24 PM

winxp网页图片不能显示解决方法是选择“Internet选项”。进入后,先选择“高级”,然后拖动右侧的滚动条,找到“显示图片”这一项,将“显示图片”这一项勾选上,然后按“应用”按钮。再去重新打开浏览器试一试即可。winXP网页图片不能显示怎么解决出现问题的原因:1、Internet选项设置不当,需要针对性设置。2、FlashPlayer有问题,需要对其修复或更新。3、动态链接库失效,需要重新注册动态链接库文件。网页不显示图片-Internet选项设置不当的解决步骤:1、解决Internet选项

u盘系统ghostxpu盘系统ghostxpFeb 14, 2024 am 09:06 AM

【图文原创】因为我的电脑只有1.99GB,所以我准备的是XP系统启动盘。准备U盘系统启动盘只要三步:一判二制三拷贝。第一步判断:判断自己的电脑适配什么系统。如何判断?只用一个指标,那就是电脑的内存。1.如果电脑内存小于2GB,适配XP系统;2.如果电脑内存在GB-3GB之间,建议选择Windows732位3.如果电脑内存大于4GB,建议选择Win764位,这时目前Windows系统里最好的、最主流的系统,游戏兼容性好。Win8是为了更好地适应平板电脑和触摸屏设备而设计的微软操作系统。Window

电视访问电脑共享文件电视访问电脑共享文件Feb 12, 2024 pm 02:42 PM

如何用长虹电视搜索电脑上的共享资源,以实现电视端的观看首先准备一根VGA连接线,使用这种连接线可以把电脑上的屏幕显示共享到长虹智能电视机上。找到电脑上的VGA插口,将VGA线的一端连接到电脑上的VGA插口上。首先在电视上打开“乐播投屏”应用。然后在电脑上点击打开“乐播投屏”软件。在电脑上打开“乐播投屏”后会自动搜索在线的可进行投屏的电视机。搜索到长虹电视后,点击下方的“开始投屏”。电脑启用来宾账户GUEST,设置密码,电视用来宾账户GUEST登陆电脑。电脑创建家庭组(xp系统的是网上邻居),设置

xp系统硬盘安装教程xp系统硬盘安装教程Feb 14, 2024 pm 02:51 PM

windowsxp系统作为老牌电脑系统,有很多忠实粉丝。这款系统有着众多优秀版本,比如家庭版、专业版、媒体中心版、入门版、嵌入式版等等呢,每个版本有着自己的特色,用户可以根据需求进行选择。那么面对这么多版本,怎么用用硬盘重装winxp系统,下面就为大家带来xp系统硬盘安装教程。推荐:u盘xp系统重装攻略winxp系统硬盘安装攻略1、点击本站提供的xp系统本地下载,xp系统下载地址:https://www.53xt.com/winxp/。2、退出安全软件,解压下载好的系统镜像文件(注意:不可存放在

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.