• mysql 配置主从


    1.下载mysql 安装包
     
    2.安装mysql
     
      2.1 解压
        tar -zxvf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
       2.2 复制到 /usr/local/mysql 目录
        cp -r mysql-5.6.41-linux-glibc2.12-x86_64 /usr/local/mysql
      2.3 添加用户组
        groupadd mysql
      2.4 添加用户
        useradd -g mysql mysql
      2.5 创建目录
        cd /usr/local/mysql/
     
        mkdir ./data/mysql
     
        chown -R mysql:mysql ./
     
        apt-get install libaio1 libaio-dev
     
        ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
     
     
      2.6 复制mysql.server
        cp support-files/mysql.server /etc/init.d/mysqld
     
        chmod 755 /etc/init.d/mysqld
     
        cp support-files/my-default.cnf /etc/my.cnf
      2.7 修改启动脚本
      vi /etc/init.d/mysqld
     
        basedir=/usr/local/mysql/
        datadir=/usr/local/mysql/data/mysql
     
      2.8 启动服务
        service mysqld start
     
      2.9 测试连接
        ./mysql/bin/mysql -uroot
     
       修改root 密码
        set password for root@localhost = password('123'); 
     
      执行下边的命令,让远程可以用root连接:
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
     
      在master和slave中都创建一个名字叫HA的数据库
     
      2.10 将mysql 加入到环境变量
        export PATH=$PATH:/usr/local/mysql/bin
        source /etc/profile
     
     
     
    克隆刚才配置的虚拟机,修改auto.cnf 的uuid , 使master和slave的id 不同
    vi /usr/local/mysql/data/mysql/auto.cnf
     
    3.修改master 的my.cnf
      vi /etc/my.cnf
     
        server_id =1
        log_bin=mysql-bin
        binlog-do-db=HA
        binlog-ignore-db=mysql
    4.重启master 的mysql(master 服务器)
      service mysqld restart
     
    5.验证(master 服务器)
      cd /usr/local/mysql/bin/
     
      ./mysql -uroot -p123
     
      mysql> show variables like 'server_id';
      mysql> show master status;
     
     
    6.添加一个同步用户slaveUser并赋值权限(用于从服务器slave使用)(master 服务器)
      mysql>create user slaveUser ;
      mysql>grant replication slave on *.* to 'slaveUser'@'192.168.117.145' identified by '123';
     
    7.修改slave 的 mycnf
       vi /etc/my.cnf
        server_id = 2
        log-bin=mysql-bin
        replicate-do-db=HA #要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
        replicate-ignore-db=mysql  #要忽略的数据库 
     
    8.重启slave 的mysql
       service mysqld restart
     
    9.校验slave
      mysql> show variables like 'server_id';
     
     
     
    10. 修改slave参数
      mysql> stop slave;
     
      mysql> change master to master_host='192.168.117.143',master_user='slaveUser',master_password='123',master_log_file='mysql-bin.000001' ,master_log_pos=732;
      其中master_log_file 和master_log_pos 是在master服务器中执行show master status; 得到的
     
      mysql> start slave;
     
    11. 重启slave mysql server: service mysqld restart
     
    12.验证(slave)
      mysql> show slave status G
     
    在master的HA数据库中创建几条记录,检查slave中的数据
     
     
     
     
     
     
     
    MySQL登录时出现 Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES):
     
    grant all privileges on *.* to root@'%' identified by '123';
     
     
    [ERROR] Slave SQL: Slave failed to initialize relay log info structure from the repository, Error_code: 1872
     
    reset slave
    mysql>stop slave;
    mysql>reset slave;
     
    mysql>change master to master_host='192.168.117.143',master_user='slaveUser',master_password='123',master_log_file='mysql-bin.000001' ,master_log_pos=732;
     
    mysql>start slave;
     
    show slave status G
     
  • 相关阅读:
    伯克利推出世界最快的KVS数据库Anna:秒杀Redis和Cassandra
    不要什么都学-打造自己的差异化价值
    gitlab markdown支持页面内跳转
    技术人员怎样提升对业务的理解
    为什么HDFS的副本数通常选择3?
    MySQL++简单使用记录.md
    log4cpp安装使用
    log4cxx安装使用
    epoll使用总结
    工作方法-scrum+番茄工作法
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/9798324.html
Copyright © 2020-2023  润新知