zoukankan      html  css  js  c++  java
  • mysql主从复制实现

    先在linux上安装好两台mysql

    首先,备份主数据库:

    mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p imooc_db > bak_imooc_db.sql

    可能会出现这样的错误:

    mysqldump: Error: Binlogging on server not active

    解决办法:

    vi /etc/my.cnf

    如果有#log_bin

    去掉前面的#号

    如果没有就加上log_bin

    如下图

    重启mysql:service mysqld restart

    再执行备份操作:

    mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p imooc_db > bak_imooc_db.sql

    会看到生成了,bak_imooc_db.sql文件。

    将 bak_imooc_db.sql拷贝到10.0.4.181服务器上。(主是:10.0.4.180,从是:10.0.4.181)

    scp bak_imooc_db.sql root@10.0.4.181:/root

    在10.0.4.181服务器的mysql上创建order_db数据库

    mysql> create database order_db charset utf8;

    将数据导入order_db中:

    [root@node1 ~]# mysql -uroot -p order_db < bak_imooc_db.sql

    修改master机器中mysql配置文件my.cnf,该文件在/etc目录下

    在[mysqld]配置段添加如下字段

    server-id=1

    log-bin=log

    binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库

    binlog-ignore-db=mysql //被忽略的数据库

    然后登录进入主的mysql,添加用于主从复制的账号。

    mysql> create user 'im_repl'@'10.0.4.%' identified by '123456';

    对账号授权。

    mysql> grant replication slave on *.* to 'im_repl'@'10.0.4.%';

    重启master机的mysql服务:service mysqld restart

    mysql>show master status;

    修改slave机中mysql配置文件

    同样在[mysqld]字段下添加如下内容

    server-id=2

    master-host=192.168.1.222

    master-user=repl

    master-password=123456

    master-port=3306

    master-connect-retry=60
    # replicate-ignore-db=mysql 忽略的数据库
    # master-connect-retry=60 如果从服务器发现主服务器断掉,重新连接的时间差(秒)

    #replicate-do-db=repl //同步的数据库(需要备份的数据库名),不写本行 表示 同步所有数据库

    然后重启slave机的mysql

    在slave机中进入mysql

    mysql>start slave;

    mysql>show slave statusG;
    如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

    关闭slave stop。

    在从服务器中建立复制链路。

    mysql> change master to master_host='10.0.4.180',master_user='im_repl',master_password='123456',MASTER_LOG_FILE='log.000001', MASTER_LOG_POS=410;

    然后执行 slave start;

    我们可以通过:

    show slave status G

    查看从的状态。如下图,还未开启。

    到这里就代表配置成功了。

    如果还有疑问,可以看一下这个网站:http://www.cnblogs.com/lben/archive/2012/11/19/2777632.html

  • 相关阅读:
    [linux] SIGPIPE信号处理
    巧妙使用spring对commons fileUpload的包装
    对commons fileupload组件的简单封装
    利用脚本启动java程序
    [linux] 创建daemon进程
    利用Jakarta commons fileupload组件实现多文件上传
    dedeCms下面 arclist标签无法嵌套图片(img)之解决办法
    编程乱码问题初步探索
    PHP下载文件函数
    Windows7下IIS中以FastCgi安装PHP
  • 原文地址:https://www.cnblogs.com/573734817pc/p/10169114.html
Copyright © 2011-2022 走看看