您的位置:首页 > 数据库 > MySQL

mysql的二进制文件与主从复制

2015-08-28 21:07 585 查看

1、用户授权

授权的意思:a中的mysql可以拿着一个密码去连接b中的mysql;mysql中授权成功就会在mysql.user表中添加一条记录。如果user表中的Host是%,那么代表所有人都可以连接

2、mysql中四种常用日志

1、mysql-slow.log

       慢查询日志,当mysql中数据的查询超过10s,数据就会被存放在这个日志中。当我们在进行数据库调优的时候就可以以此为依据。

2、log-err.log

       错误日志,mysql在运行过程中出现的错误会被存放在错误日志中

3、mysql.log

       操作日志,存放一般的操作日志

4、mysql-bin.log

       二进制日志,一般很少用到,但是DBA在需要恢复数据的情况下可能会用到

     最大的作用:恢复数据(两个备份之间系统崩溃,这个之间的数据是没有备份的,这些数据的恢复就需要二进制文件)

3、操作二进制文件

           开启二进制日志,在my.ini中添加红色框中的语句

           


         查看日志:show variables like "%log%";

         重新生成新的日志文件:flush logs;

         查看最后一个bin日志:show master status;

         清空所有bin-log日志:reset master;

4、mysql的bin-log日志恢复

      备份完成之后过了一一小时数据库崩溃;一小时之前的数据是能够恢复的,那么这一小时的数据如何恢复

      /user/local/mysql/bin/mysqlbinlog --no-default
mysql-bin.000002 |/user/local/mysql/bin/mysql -uroot -p123
test;

     语句解释:

      mysql-bin.000002:二进制文件名称

      test:恢复到的数据库

     

5、主从复制

主从复制就是数据库之间的同步。而他的本质就是讲主服务器的bin-log日志文件拷贝到从服务器,进行数据恢复

主从复制前提:从服务器有一定的权限能够从主服务器拿到bin-log日志

作用:

1. 主服务器出现问题,可快速切换到从服务器提供服务

2.  可以在从服务器上执行查询操作,降低主服务器的访问压力

3.  可以在从服务器上执行备份,以避免备份期间影响主服务器的服务

步骤:

主服务器配置

1.  登录mysql数据库

mysql>mysql -uroot -p test

2. 给从服务器设置授权用户

mysql>grant all slave on *.* to user@192.168.24.139 identified by "pass";

3. 修改主数据库服务器的配置文件my.cof,打开binlog,并设置server-id的值

log-bin=mysql-bin

server-id=1

4. 在主服务器上设置读锁定有效,确保没有数据库操作,以便获得一个一致性的快照(选做)

mysql>flush tables with read lock;

5. 查看主服务器上当前的二进制日子名和偏移量值

mysql>show master status;

6. 目前主数据库服务器已经停止了更新操作,生成主数据库的备份,备份的方式有两种

    6.1 cp全部的数据

    6.2 mysqldump备份数据方法

如果主数据库的服务可以停止,那么直接cp数据文件应该是最快的生成快照的方法

7. 主数据库备份完毕后,主数据库可以恢复复写操作,剩下的操作只需要在从服务器上去执行

mysql>unlock tables;

8. 把主数据库的一致备份恢复到从数据库上,把以上的压缩包解压后放到响应的目录即可

从服务器配置

1. 修改从数据库的server-id,注意server-id的值必须是唯一的,不能和主数据库的配置相同,如果有多个服务器,每个从服务器必须有自己唯一的server-id值。

2. 连接主服务器

     2.1 在从服务器上的配置文件中:

            server-id=2

            master-host=192.168.10.1

            master-user=user

            master-password=pass

            master-port=3306

            log-bin=mysql-bin

      2.2 重新启动mysqld服务

            pkill mysqld

            /user/local/mysql/bin/mysqld_safe --user=mysql&

       2.3 查看相应的主从复制进程列表有两种:

           1. processlist

               mysql>show processlist\G

            2. status

              mysql>show slave status\G

              如出现:

             Slava_IO_Running :Yes

             Slave_SQL_Running:Yes
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: