mysql 主从备份

一、下载

二、主服务器配置

  1. 添加mysql用户
    groupadd mysql
    useradd -r -g mysql mysql
  2. 环境变量配置(可省略)
    创建目录连接
    ln -sv /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
    设置环境变量
    /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin
    source /etc/profile
  3. 创建data目录(建议data目录不要放在base目录下,容易出错)
    备注:创建数据目录、授权、初始化mysql mysql5.7.7及以上做了很多改变,5.7.7以前安装方法和以前差不多,初始化也保留了mysql_install_db,5.7.7以后则去掉了该脚本,使用了-initialize 或者 –initialize-insecure 参数作为初始化。
    mysql5.7.14版本初始化时候已经抛弃了defaults-file参数文件,所以在初始化时候指定配置文件会出错,同时必须保证datadir为空。
    mkdir /data/mysql
    chown mysql.mysql /data/mysql
    /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/root/mysql/mysql --datadir=/data/mysql

    使用–initialize的话,会随机生成一个密码,登陆数据库的时候要使用;–initialize-insecure,密码是空
    初始化的时候如果有错误,表示初始化失败,可以查看错误日志,一般都是路径配的有问题。
  4. 配置my.cnf文件
    参考如下:

      [client]
      port=3307
      socket=/data/mysql/mysql.sock
    
      [mysqld]
      basedir=/root/mysql/mysql
      datadir=/data/mysql
      port=3307
      server_id=1
      socket=/data/mysql/mysql.sock
      pid-file=/data/mysql/my.pid
    
      sync_binlog=1
      log-bin
      binlog-do-db=2
      symbolic-links=0
      log_slave_updates=1
      slow_query_log
      long_query_time=1 
      #max_connections=2000
      #max_user_connections=1700
      #max_connect_errors=2
      character_set_server=utf8
    
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    

    其中pid-file建议配到data目录下,别的目录可能会出错;
    mysql.sock和my.pid建议在同一目录下;这两个配置容易出错,原因多是路径配的不正确,或使用冲突,不要使用默认目录,否则从服务器启动不成功;
    另外base和data目录也要重新制定,主从数据库路径应该不同;

  5. 配置mysql.server文件(不要忘记)
    base和data路径和my.cnf中保持一致

    注释:第二个数据库与此步骤一致

三、从服务器运行

  1. 启动mysql.server
    ./support-files/mysql.server start(参数:stop, restart)
  2. 连接数据库
    mysql -uroot -h127.0.0.1 -P3307 -p
  3. 在主服务器上为从服务器添加账户
    创建用户
    CREATE USER 'dxy'@'localhost' IDENTIFIED BY '123456';

    给用户授权
    GRANT REPLICATION SLAVE,FILE,RELOAD,SUPER ON *.* TO 'test'@'192.168.8.88'

    查看所有授权的用户
    select * from information_schema.user_privileges;


~~~~~~至此,主数据库配置完成~~~~~

注意:配置前一定要保证两个版本数据一致,操作前停止一切更新操作(写入、更新、删除等);


四、从服务器配置

步骤同二,其中1、2可省略,但是端口和路径一定不能重复

五、从服务器运行

  1. 启动mysql.server
    ./support-files/mysql.server start (参数:stop, restart)
  2. 连接数据库
    mysql -uroot -h127.0.0.1 -P3308 -p
  3. 查看主服务状态
    show master status;
  4. 连接主服务器
    change master to master_host='192.168.8.88',master_user='test',master_password='test',master_port=3307,master_log_file='localhost-bin.000003',master_log_pos=506;

  5. 启动从服务器
    start slave;

    参数说明:
    master_host=主服务器IP
    master_user=在主服务器上创建的备份用户名
    master_password=备份用户密码
    master_log_file=查询master(主服务器)的状态得到的File列的值
    master_log_pos=查询master(主服务器)的状态得到的Position列的值
    start slave:启动从服务器复制功能

  6. 查看从服务器状态
    show slave status\G;

    其中以下两项必须为true
    Slave_IO_Running: Yes
    lave_SQL_Running: Yes


~~~~~至此,从数据库配置完成~~~


六、验证

在主数据库的某张表中插入一项,查看从数据库内容是否变化,如果是,就是成功。

七、附录:

  1. 参考网址
    http://www.jb51.net/article/103843.htm
    http://blog.csdn.net/testcs_dn/article/details/51423861
    http://www.cnblogs.com/zhoujinyi/p/5627494.html
    http://www.cnblogs.com/xujishou/p/6306765.html
    http://blog.csdn.net/felcon/article/details/52047696
  2. 可能用到的命令:
    查看所有授权的用户
    select * from information_schema.user_privileges;
    创建用户
    CREATE USER 'dxy'@'localhost' IDENTIFIED BY '123456';
    给用户授权
    GRANT REPLICATION SLAVE,FILE,RELOAD,SUPER ON *.* TO 'test'@'192.168.8.88'
    查看用户权限
    show grants for dxy@localhost;
    查看用户密码
    show create user dxy@localhost;
    刷新授权
    flush privileges;
    查找正确的套结子
    netstat -ln | grep mysql
    备份数据库导出
    mysqldump --socket=/data/mysql/mysql.sock --all-databases > database_mysql1.back
    备份数据库导入
    mysqldump --socket=/data/mysql2/mysql.sock --all-databases < database_mysql1.back
    显示数据库的进程列表
    show processlist;
    查询表中所有数据
    select * from tablename;
    查询表的结构
    show columns from tablename
    select * from columns where table_name='表名';

  3. 忠告
    mysql5.7.9以后的版本与之前版本存在差异,需要注意;

猜你喜欢

转载自blog.csdn.net/martin_chen2/article/details/79694895
今日推荐