mysql主从库搭建

来源:互联网 发布:python 连接informix 编辑:程序博客网 时间:2024/06/06 13:05

1.导出数据备份

mysqldump -u root -p crm>c:\crm.sql

切换到mysql/bin目录下
但是报错:没有权限
解决方案:找到命令提示符右键选择以管理员身份运行即可

2.完全卸载mysql

  • 从控制面板卸载mysql
  • 删除mysql默认安装目录下的文件
  • 删除 C:\Documents and Settings\All Users\MySQL文件

3.重新安装mysql

  • 只需要注意选择字符集UTF-8,其余均是Next

  • 停止mysql服务,复制 C:\Program Files\MySQL\MySQL Server 5.5 到 C:\MySQL2

  • 修改mysql2/my.ini

修改第 53 行与第 70 行两处端口号改为 3307修改 74 行:basedir="C:/MySQL2/"修改 77 行:datadir="C:/MySQL2/Data/"
  • 以 管 理员身份打开命令行窗口,否则没有创建服务权限
    转到 C:\MySQL2\bin 目录下执行如下命令
mysqld install MySQL2 --defaults-file="C:\MySQL2\my.ini"
  • 启动mysql和mysql2服务

  • 重设mysql2的密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');

4.主从库搭建

  • 确定主从库
把第一个端口为 3306 实例定为主库:Master把第二个端口为 3307 实例定为从库:Slave
  • 修改主库的ini文件
找到 67 行[mysqld]标签,增加如下两行内容,注意使用正斜杠/log-bin= C:/Program Files/MySQL/MySQL Server 5.5/mysql-bin.logserver-id=1
  • 修改从库的ini文件
找到 67 行[mysqld]标签,增加如下内容server-id=2
  • 重新启动mysql和mysql2

  • 登录主库为从库赋权

GRANT REPLICATION SLAVE ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root'
  • 查询主库的状态,一定要记下查询结果File/Position
show master status
  • 登录从库执行
change master to master_host='localhost',master_user='root',master_password='root',master_log_file='主库查询出的File',master_log_pos=主库查询出的Position;
  • 启动从库复制功能
start slave;
  • 检查从库复制功能状态
show slave status
  • 测试
要从主库插入数据,看从库是否更新数据.不能向从库插入数据

5.mysql代理

  • 在 C:\mysql-proxy\bin 下新建 mysql-proxy.conf 文件内容为并保存
[mysql-proxy]proxy-address=127.0.0.1:4040proxy-backend-addresses=localhost:3306proxy-read-only-backend-addresses=localhost:3307proxy-lua-script=rw-splitting.lua
  • 修改环境变量
修改用 windows 用户环境变量在 path 后加 “;C:\mysql-proxy\bin;”
  • 创建服务
sc create "MySQL Proxy" DisplayName= "MySQL Proxy" start= "auto" binPath="C:\mysql-proxy\bin\mysql-proxy-svc.exe"

注意:这句命令应当粘贴出来放在一行上,并且=后面要有一个空格

  • 启动代理服务,启动不成功win7某些用户可能需要安装 vc++2008运行库
  • 最终测试
在代理库中新插入数据,主库和从库都可以得到最新的结果,表明安装成功