MySQL分布式之主从配置


最近遇到的一个项目就是要求做mysql的分布式设计,之前弄过,但是这次弄的稍微深入点。mysql分布式的内容还是比较的多,所以就想写点东西给自己备份下,忘记了还能回头看看。

我下载的ZIP版本mysql,安装起来还是蛮方便的。安装步骤如下:

1、解压缩mysql-noinstall-5.0.37-win32.zip到一个目录,加入解压缩到E:\mysql目录。
2、编写mysql的运行配置文件my.ini
my.ini
-----------------------------
[WinMySQLAdmin] 
# 指定mysql服务启动启动的文件
Server=E:\\mysql\\master\\bin\\mysqld-nt.exe

[mysqld] 
# 设置mysql的安装目录 
basedir=E:\\mysql\\master

# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data 
datadir=E:\\mysql\\master\\data
# 设置mysql服务器的字符集
default-character-set=gbk

[client]
# 设置mysql客户端的字符集
default-character-set=gbk
-----------------------------

3、安装mysql服务
从MS-DOS窗口进入目录E:\mysql\master\bin,运行如下命令:
mysqld --install master--defaults-file= E:\master\my.ini

4、启动mysql 的master数据库
还在上面的命令窗口里面,输入命令:net start master
这样就启动了mysql的master服务。

这个是安装的主Mysql,安装从mysql只需把master这个文件夹复制一份,并且重新命名一下,比如slave1

然后开始安装

1、从MS-DOS窗口进入目录E:\mysql\slave1\bin,运行如下命令:
mysqld --install slave1--defaults-file= E:\mysql\slave1\my.ini

2、

还在上面的命令窗口里面,输入命令:net start slave1
这样就启动了mysql的第一个从数据库slave1的服务。

最后你会看到regedit中的:


这里的mysql相当于master,mysql3相当于slave1

.

 

安装完成后开始配置数据库用户。因为要想让从数据库可以访问到主数据库,那么必须在主数据库中建立一个账号,从数据库用这个账号来登录主数据库。

建立账号可以用工具,我用的是navicat 8 for mysql。假如名字是slave,密码也是slave,主机%表示任何IP的主机都可以连接这个。

下面配置my.ini

如果你在下载的文件里没有找到my.ini,那么就把my-large.ini或者其他的几个中,选择一个修改名字成为my.ini。

主:

  1. server-id = 1 //表示主,2,3....都表示从  
  2. log-bin = mysql-bin //日志文件名称,这个是必须的,因为从能同步到主就是靠日志,这个名字可以随便  
  3. binlog-do-db = test //需要同步的数据库  
  4. binlog-ignore-db = mysql //不需要同步  

从:

  1.  server-id = 2  
  2.  master-host = 127.0.0.1 //主数据库的IP  
  3.  master-port = 3306   
  4.  master-user = slave //从登录主的用户名  
  5.  master-password = slave //从登录主的密码  
  6.  replicate-do-db = test  
  7. log-bin =mysql-bin  

我是在本机XP中坐的同步,所以ip是127.0.0.1,最好不要写localhost。主从中的同步的表,包括表结构必须是一样的。

这样配置就好了,有什么问题大家可以再讨论。

相关内容