Windows下多个Mysql实例配置主从

序:
    网上有不少相似的文章,也是各类百度出来的,可是对于多数刚开始接触MYSQL主从的小白来讲,网上文章的代码里面不少技术点都没有理解,有跌打误撞碰上的,但多数都是这篇文章卡主了,换篇文章接着卡。- -。
    下面真正开始写教程以前,我但愿你可以先完整的看完,再去敲代码。
    方法适用于MYSQL 5.1以后的版本。以前的版本,自行百度。
Mysql的主从是个什么德行我就不解释了。否则你也不会搜不到这篇文章。
环境:
w7 64位。
    mysql 5.5.24...(也就是多数你们装的wamp包里面的版本)
其实应该是要在 linux里面去作这件事的,可是仅仅是为了了解,学习这个主从,大多数人仍是windows下的平台,So...不解释。
首先你要在你的windows下再装一个mysql实例(不要妄想着一个Mysql实例,里面弄两个库而后他们配置主从,这个我可没玩过,有兴趣的同窗能够尝试一下),意味着你要分配不一样的端口。
windows下安装多个mysql的过程看下面这篇文章就行了。

这是用到的软件包
(看我多么良心,连软件都给你准备好了,不用你去各大垃圾下载站去下载了。再次注意你的环境,保证跟个人同样,以及数据库版本)


OK。我就当你已经配置好了第二个mysql实例。
下面两个bat 文件代码,用来帮你快速启动关闭你的新服务
startmysql.bat

@ECHO OFF
net start mysql5.5
pause

stopmysql.bat

@ECHO OFF
net stop mysql5.5

pause

这个mysql5.5 是你第二个实例的服务名称,stop中止服务,start 开启服务,不解释了。
别忘了进去你第二个Mysql实例瞅瞅。


进入正餐:
由于咱们是在一个windows下配置的,因此没有网上那些主从 IP。 都是localhost
主数据库  my.ini添加以下

在[mysqld]下添加配置数据:
server-id=1     #配一个惟一的ID编号,1至32。 手动设定
log-bin=mysql-bin  #二进制文件存放路径 ,不要在乎为啥没有路径名,你就这样写

#设置要进行或不要进行主从复制的数据库名,同时也要在Slave(也就是你的从库) 上设定。
binlog-do-db=进行主从数据库名1 ,进行主从数据库名2
binlog-ignore-db=不参与主从的数据库名,不参与主从的数据库名2
保存,重启数据库服务。

 上面的这些配置的含义:html

    - server-id 顾名思义就是服务器标识id号了
    - log-bin 指定日志类型
    - binlog-do-db 是你须要复制的数据库名称,若是有多个就用逗号“,”分开
    - binlog-ignore-db 是不须要复制的数据库名称,若是有多个就用逗号“,”分开mysql

在主库中创建一个用户(专门用给从库链接的,注意这是在主库里面创建的,可别迷迷糊糊的到从库的命令界面敲):

1.mysql>grant replication slave,reload,super on *.* to  lisimin @l ocalhost identified by ' root' ; 

2.mysql>flush privileges; 
3.mysql>show master status; # 找到File 和 Position 的值记录下来;



简单解释一下第一句。
建立了一个用来复制的帐号。
“@”前面的“lisimin”是用户名,后面的是有效的域,这里由于是本地,因此是写的是Localhost,若是是其余地址,对应填写上IP便可,不过应该不须要考虑端口问题,我建立的时候就没写端口。by 后面的“root”是密码。帐户密码本身定义,不要跟root,以及你当前的用户名冲突。。

2.flush....刷新权限。
3.这个就是你的日志值
下面这篇文章是介绍建立用户对应分配权限问题的,简单了解一下就行。


从库配置:
从数据库配置my.ini:
[mysqld]
server-id=2     #惟一
#设置要进行或不要进行主从复制的数据库名,同时也要在Master 上设定。
replicate-do-db=进行主从数据库名1 ,数据库名2
replicate-ignore-db=不进行数据库名1 ,数据库名2

多个数据库之间用 , 分割。其实也能够这样写
replicate-do-db=进行主从数据库名1 
replicate-do-db=进行主从数据库名2
上面的那个写法也是。

其实你只须要写进行主从的库名称就能够了。
对了。假如你的主库叫 A 。那你的从库 最好也叫A。叫别的也能够,不过必定要是存在的。

下面登录你的从库:
mysql>change master to master_host='127.0.0.1',master_user='slave',master_password='slave', master_log_file='mysql-bin.000001',master_log_pos=107;

master_host= 这里填你主库的IP。
master_user='lisimin'  刚才咱们建立的那个用户。
master_user='root'  ..不解释。
这就是咱们刚才 在主库里面 show  master status;获得的值了。自行根据实际状况填写
master_log_file='mysql-bin.000015
master_log_pos=107

若是你的主库还有是其余端口的话,
master_port=端口号   
master里面经常使用的就这些参数了,其他的自行百度。
常见的有,让你先 stop slave 。。
那你就先 mysql>stop slave 。再执行上面的代码。其余的错误,容易出如今语法,标点符号上,
而后 mysql>start slave ;
mysql>show slave status\G;
若是出现:
Slave_IO_Runing:Yes
Slave_SQL_Running :yes
那就说明成功了,若是出现错误,通常都是链接出问题。从新检查一下你是否正确的输入了刚才建立的用户名和密码。好了基本上就是这些问题了。

尊重原创,一些资料,也是从下面两篇文章中参照的、


最后说点注意事项,从库要先建立好,以及里面的表结构,反正我是先建立好表结构的,若是你说之后涉及到添加,删除字段问题,那就是之后的事了。

还有,若是你真正部署到服务器的话,通常是linux必定要写好了定时删除 日志文件的脚本文件,这个估计是之后的事了。否则,日志文件但是很是大的。按期作个备份啥的。

OK,这样你就能够在你的主数据库里添加一条记录试试,看看你的从库有木有记录。(别忘开从库的服务啊、、)
以及,能够把主库里面的表设计为 innodb。从库设计为myisam。。来提升性能。

不啰嗦了。
相关文章
相关标签/搜索