mysql 主从同步设置

来源:互联网 发布:淘宝全屏海报热点代码 编辑:程序博客网 时间:2024/06/10 06:27

前提,两台安装了同样版本mysql的服务器(其实好像版本不一样也行,但是稳妥起见,还是用一样版本的mysql吧,毕竟俺是个小白)。

主服务器ip:192.168.2.19            从服务器ip:192.168.2.155

停止前端nginx服务,既停止php向mysql发起请求

    一.给主服务器上创建一个用户用于给从服务器同步使用:


        grant all privileges on *.* to slaveuser@丛库IP identified by '密码';



    二.停止这两台服务器上的mysql服务:


        /usr/local/mysql/bin/mysqladmin shutdown --socket=/opt/db/mysql/mysql.sock -uroot -ppassword



    三.修改主服务器的配置文件

        server-id             = 1                                         #主机标示,整数
        log_bin               = /opt/db/mysql/data/mysql-bin.log          #确保此文件可写
        read-only             = 0                                         #主机,读写都可以
        binlog-do-db          = test                                      #需要备份数据,多个写多行
        binlog-do-db          = anotherdb                                 #需要备份数据,多个写多行



四.在从服务器上拉取主服务器中的要同步的库的表结构和数据(需要输入主服务器的root密码)

        scp -r -p root@192.168.2.19:/opt/db/mysql/data/fb_cn  /opt/db/mysql/data/

       并且改变/opt/db/mysql/data/中fb_cn的用户和用户组 



   五.启动主服务器mysql服务(根据自己具体情况启动)


        /usr/local/mysql/bin/mysqld_safe 

                --defaults-file=/opt/db/mysql/my.cnf                 #mysql配置文件位置

                --basedir=/usr/local/mysql                           #mysql安装目录

                --pid-file=/opt/db/mysql/mysql.pid                   #pid文件创建位置

                --datadir=/opt/db/mysql/data                         #数据文件位置

                --socket=/opt/db/mysql/mysql.sock                    #sock文件位置

                --log-error=/opt/db/mysql/err.log                    #错误日志文件位置

                --log-slow-queries=/opt/db/mysql/slowquery.log&      #慢查询日志文件位置




  六.查看主服务器mysql状态,记录file和position,很重要,在从库设置中将被用到,此时需保证主服务器mysql不会有写操作


        /usr/local/mysql/bin/mysql -uroot  --socket=/opt/db/mysql/mysql.sock -p  (进入mysql环境)

       >show master status;

        +——————+———-+————–+——————+

        |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

        +——————+———-+————–+——————+

        |mysql-bin.000001|106| myslave      | mysql            

        |+——————+———-+————–+——————+



 七.修改从服务器的配置文件


        server-id             = 2                                   #主机标示,整数

        log_bin               = /opt/db/mysql/data/mysql-bin.log    #binlog

        master-host           = 192.168.2.19                        #主服务器ip地址
        master-user           = slaveuser                           #主服务器用于主从设置的用户

        master-pass           = 密码                                #主服务器用于主从设置的用户密码

        master-port           = 3306                                #主服务器端口号
        master-connect-retry  = 60                         #从服务器发现主服务器断掉,重新连接时间(秒)
        replicate-do-db       = test                       #要进行主从同步的库名,用逗号隔开

replicate-do-db       = another                    #要进行主从同步的库名,用逗号隔开



    八.启动从服务器(根据自己具体情况启动)


/usr/local/mysql/bin/mysqld_safe 

                --defaults-file=/opt/db/mysql/my.cnf                 #mysql配置文件位置

                --basedir=/usr/local/mysql                           #mysql安装目录

                --pid-file=/opt/db/mysql/mysql.pid                   #pid文件创建位置

                --datadir=/opt/db/mysql/data                         #数据文件位置

                --socket=/opt/db/mysql/mysql.sock                    #sock文件位置

                --log-error=/opt/db/mysql/err.log                    #错误日志文件位置

                --log-slow-queries=/opt/db/mysql/slowquery.log&      #慢查询日志文件位置


   九.进入从服务器mysql环境中,配置Slave信息


/usr/local/mysql/bin/mysql -uroot  --socket=/opt/db/mysql/mysql.sock -p

         >CHANGE MASTER TO 

         >MASTER_HOST='192.168.2.19',                     #主服务器ip

         >MASTER_PORT=3306,                               #主服务器mysql服务端口

         >MASTER_USER='slaveuser',                        #主服务器中用于主从连接的用户名

         >MASTER_PASSWORD='密码',                         #主服务器中用于主从连接的用户密码

         >MASTER_LOG_FILE='mysql-bin.000001',             #从主服务器的master状态中读取的file

         >MASTER_LOG_POS=106;                             #从主服务器的master状态中读取的position




    十.启动Slave服务 

        >start slave;




   十一.查看从服务器状态

        >show slave status\G;

   如果发现

        Waitingfor master to send event

        Slave_IO_Running:Yes

        Slave_SQL_Running:Yes


   总体来说,这个配置还是很成功的,但是由于操作问题,在配置过程中,大脑缺弦了,直接把replicate-do-db = another这个考到了从服务器的mysql配置文件里,典型脑残啊,特此纪念一把,多花了一个小时的时间。



0 0
原创粉丝点击