ubuntu14下搭建mysql主从服务器

    mysql的主从复制是异步的,分master/slave,在master端存在一个IO线程,而在slave下存在IO及Sql线程。
mysql

    搭建环境最重要的地方在于将mysql的二进制日志功能开启,我在搭的过程当中有个细节没注意,坑了我很久。
sql

    环境:
ubuntu

        个人两台虚拟机上网方式都是采用桥接模式,不推荐nat.首先对两台虚拟机设置固定ip地址,和你的物理机的ip地址在一个段内,这样你的虚拟机就很相似一台局域网的物理机工做了。vim

        设置固定ip地址:异步

        $ sudo vim /etc/network/interfaces  ide

        以下:oop

            # interfaces(5) file used by ifup(8) and ifdown(8)测试

            auto lospa

            iface lo inet loopback线程

            auto eth0

            iface eth0 inet static

            address 192.168.1.252

            netmask 255.255.255.0

            gateway 192.168.1.1

        $ sudo /etc/init.d/networking restart  

        个人虚拟机地址各设为:192.168.1.251   192.168.1.252  网关IP:192.168.1.1

        设置完后,首先在虚拟机中互ping,必须保证能通。

    环境准备好后,能够开始了,我没有采起rpm方式,ubuntu下直接在线安装mysql很是方便的,省去了不少步骤。

    $ sudo apt-get install mysql-server

   默认安装完自动开启的,因此用 netstat -tap|grep mysql 看看是否是mysql服务存在了

   以后查询下mysql运行状态,service mysql status,一样,还有其余命令,service mysql                  start/stop/restart.

    若是出现了如下信息,则表明成功了。

    mysql start/running, process 1199

    在登录前先到/etc/mysql/my.cnf下 将bind-address注释掉,由于默认只能本机访问。

    登录mysql

    mysql -u root -p 

    grant replication slave,reload,super on *.* to slave @192.168.1.152 identified by '1234'

    而后在另外一台Ubuntu下远程测试下

    mysql -u slave -h 192.168.1.151 -p

    前期工做准备好了,如今就开始配置:

    在master 192.168.1.251的机子上对my.cnf修改,切记如下配置信息必定要加到【mysqld】模块中,放在文件其余位置会致使master配置失败。

    server-id=1

    log_bin=/var/log/mysql/mysql-bin.log

    binlog_do_db=student

    binlog_ignore_db=mysql

    重启下mysql

    sudo  /etc/init.d/mysql restart

    若是在重启过程当中failed,建议先看下my.cnf的log-error对应得错误日志文件位置,而后cat看下报错信息

    以后进入master的mysql,首先看下二进制功能是否on.

    show variables like 'log%' 

    若是为off表明没开启,则仍是返回检查下my.cnf文件,是否放在[mysqld]那块中等。文件路径是否对了

    show master status;则能看到对应得file position 信息,这些在从机设置的时候要用到。

    最后到salve 192.168.1.252的/etc/mysql/my.cnf下配置:

    server-id=2

    log_bin=/var/log/mysql/mysql-bin.log

    replicate_do_db=student

    重启下mysql

    sudo  /etc/init.d/mysql restart

     slave进入mysql:

     stop slave

      而后设置从master复制日志配置

      change master to master_host='192.168.1.151' ,master_user='slave',master_password='1234',

      master_log_file='log.000004',master_log_pos=94;

      log_file log_pos则是在master下show master status看到的file position信息。

      start slave;

      show slave status\G

       在出现的信息中找到 Slave_IO_Running/Slave_SQL_Running ,都为YES则成功了。

        若是出现了NO,则仍是查看log-error日志文件,会比较清晰的描述出来的。

相关文章
相关标签/搜索