zoukankan      html  css  js  c++  java
  • mysql主从复制架构配置

    第一个mysql
    1、下载mysql,解压,移动解压后的目录到指定目录下。
    如:mv /usr/local/src/mysql-5.1.. /usr/local/mysql
    创建mysql用户, useradd -s /sbin/nologin mysql
    创建数据存放目录/data/mysql
    并指定拥有者所属组:chown -R mysql /data/mysql
    2、拷备配置文件,启动脚本到指定目录下
    cp my.cnf到/etc/my.cnf
    cp my.server到/etc/init.d/mysqld
    3、编辑启动脚本:
    vim /etc/init.d/mysqld
    指定datadir和basedir
    如:
    basedir=/usr/local/mysql
    datadir=/data/mysql
    进入安装目录,初始化
    ./script/mysql_install_db --user=mysql --datadir=/data/mysql
    4、启动mysql服务:/etc/init.d/mysqld start
    第二个mysql
    1、拷备mysql安装目录 :
    cp -r /usr/local/mysql /usr/local/mysql2
    2、 拷备配置文件,启动脚本到指定目录下
    cp /etc/my.cnf到/usr/local/mysql2/my.cnf
    cp /etc/init.d/mysqld /etc/init.d/mysqld2
    修改my.cnf文件中如下内容:
    [mysqld]
    port = 3307
    socket = /tmp/mysql2.sock
    datadir = /data/mysql2
    并且创建数据存放目录。/data/mysql2
    修改mysqld2 启动脚本。
    指定datadir和basedir
    如:
    basedir=/usr/local/mysql2 #安装目录
    datadir=/data/mysql2 #数据存放目录
    同时:conf=$basedir/my.cnf #指定配置文件。

    1、在主mysql创建测试数据库
    mysql -uroot -p52033dd -S /tmp/mysql.sock
    create database db1;
    2、复制数据到数据库db1;
    先备份数据 mysqldump -uroot -p52033dd
    -S /tmp/mysql.sock mysql>1.sql
    复制(恢复)数据 mysql -uroot -p52033dd
    -S /tmp/mysql.sock db1 <1.sql

    use db1; show tables;
    可查看数据库db1中有没有表数据

    3、修改主mysql的my.cnf配置文件
    修改如下内容:
    log-bin=mysql-bin[可自定义]
    server-id = 1
    有时需要指定更新(do)或不更新(ignore)的数据库:
    如 binlog-do-db=databasename1,databasename2;
    binlog-ignore-db=databasename1,databasename2;
    重新启动mysql服务:
    /etc/init.d/mysqld restart

    4、在主mysql中创建一个用户
    作为从mysql访问主mysql端数据的用户:
    grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123456';
    5、使更改立即生效:flush privileges;
    6、锁定数据库,不允许更改任何数据。
    flush tables with read lock;
    7、查看状态:show master status;
    记住如下内容:
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000011 | 331 | | |
    +------------------+----------+--------------+------------------+

    1、修改从mysql中的mysql.cnf配置文件
    修改如下,改变其server-id号使和主mysql不同。
    server-id = 2
    保存后重启mysql服务
    /etc/init.d/mysql2 restart
    2、创建数据库使之和主mysql相同。
    mysql -S /tmp/mysql2.sock -e "create database db1"

    3、复制数据:
    mysql -S /tmp/mysql2.sock db1 < 1.sql

    4、进入数据库
    mysql -S /tmp/mysql2.sock
    停止 :slave stop; mysql5.6为stop slave;
    配置主从:
    change master to master_host='127.0.0.1',master_port=3306,master_user='repl',
    master_password='123456',master_log_file='mysql-bin.000011',
    master_log_pos=331;
    #其中 host指定ip ,post 指定主mysql端口,
    user指定访问用户名,password密码,
    log_file是之前主mysql上查看状态得到的file名,
    log_pos也是之前主mysql查看状态Position得到的。
    5、启动:slave start;
    6、查看slave的状态;
    show slave statusG;
    如果以下两项参数为YES,则成功。
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    主mysql解锁:unlock tables;

    测试:
    1、在主mysql操作,删除表
    drop table help_topic;

    在从上查看表列表:是否存在help_topic表
    use db1; show tables;

    2、在主mysql操作,创建表
    create table dd(`id` int(8), `name` char(40));

    在从上查看表列表:是否存在dd表

    3、在主mysql操作,删除库
    drop database db1;

    在从上查看库列表:是否存在db库
    show databases;

    主从mysql监控核心:
    两个参数 Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    error 错误日志Last_SQL_Error:

    ***特别提示:在不同服务器上安装端口不需要改动,只改变其server-id号使和主mysql不同

  • 相关阅读:
    #什么是spring#
    spark sql 判断一列是否包含某字符
    win10 安装微软商店
    python获取一段时间的日期
    css 网格
    css 网格属性总结
    css flex容器属性总结
    CSS Flexbox
    响应式Web设计
    css 伪类选择器
  • 原文地址:https://www.cnblogs.com/ddgen/p/7119591.html
Copyright © 2011-2022 走看看