zoukankan      html  css  js  c++  java
  • 记录一次工作中配置的Mysql主从复制过程

    Mysql主从复制教程

    1.安装mysql(安装步骤跳过)
    2.配置密码。(如果忘记密码或者误操作删除了root用户,使用如下命令,没有忘记就跳到3)
    将skip-grant-tables放在/etc/my.cnf里的[mysqld]下的第一行,可免密码登录,然后更新或者插入user表数据。
    set password=password("root");(设置新密码)
    CREATE USER 'replication'@'192.168.3.212' IDENTIFIED BY 'root';
    update user set Host='%',select_priv='y', insert_priv='y',update_priv='y', Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
    flush privileges;刷新MySQL的系统权限相关表。

    3.主从数据库只是配置而已,不需要额外代码。但是如果配置不好,会花很长时间反复修改。
    4.开始正题。
    主从更新就是主库增删改查的时候,从库也会进行操作,而且是读取bin日志进行操作。
    主库需要添加一个用户(为的是不让从用root账户,用别的用户更安全)供从访问。

    5.关闭防火墙(更好的办法是将3306端口放入防火墙计划,/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT )。
    6.很多文件需要给相应的权限。

    7.启动:/usr/local/mysql/support-files/mysql.server start或者$ service mysql.server start。
    8.启动mysql:mysql -u root -p回车 输入密码(root)。


    9.设置可远程登录
    mysql> use mysql;
    mysql> update user set host = '%' where user ='root';
    mysql> flush privileges;

    10.master配置my.cnf
    vi /etc/my.cnf
    在[mysqld]下加
    log-bin=mysql-bin
    server-id=1

    ///////
    11.CREATE USER 'replication'@'192.168.3.128' IDENTIFIED BY 'root';(给从机使用的用户名和密码)
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.3.128';(给予相应权限)
    flush privileges;刷新MySQL的系统权限相关表。
    show master status;//显示主库状态

    12.配置slave
    vi /etc/my.cnf
    在[mysqld]下加
    log-bin=mysql-bin
    server-id=2 //(总之slave之间的id不能一样)
    START SLAVE; //开启slave stop slave; //关闭slave
    show slave statusG //查看复制状态
    其中Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Seconds_Behind_Master 0

    13.如果需要手动同步,执行下列
    change master to master_host='主库ip',master_user='主库给其他从库准备的用户名',master_password='主库给其他库准备的密码',master_log_file='主库status的file',master_log_pos='主库status的position';
    CHANGE MASTER TO MASTER_HOST='192.168.3.128', MASTER_USER='replication', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-sbin.000001', MASTER_LOG_POS=154;

    14.如果报错,不外乎用户名密码不对(去主库修正为正确密码),网络(要一个网段),防火墙(3306加入防火墙计划)等。
    还有一种是3102错误,所以要确保主从开始之前,mysql没有任何bin(mysql-bin)日志。
    只需要将master的mysql-bin删除即可,命令:reset master。
    这个只能在没开始复制之前进行。在复制中的情况下需要用expire_logs_days = 7设置七天删除。

  • 相关阅读:
    SpringFramework中的BeanWrapper丶PropertyEditor
    Spring加载资源文件的方式
    kettle批量导入json数据
    Beanfactory与ApplicationContext
    fastjson的方法应用与java JSONObject
    算法 汽水瓶
    算法 简单密码
    算法 识别有效ip地址和掩码并做统计
    各类IP地址
    算法 密码验证合格程序
  • 原文地址:https://www.cnblogs.com/chxwkx/p/10433504.html
Copyright © 2011-2022 走看看