zoukankan      html  css  js  c++  java
  • mysql数据库的主从

    一、mysql主从同步工作过程
    /var/lib/mysql/
    stu-relay-bin.000002
    stu-relay-bin.index
    relay-log.info
    master.info

    从 show slave status;

    Slave_IO_Running: Yes
    作用:从master数据库服务器的binlog日志里同步sql命令到本

    机的中继binlog日志文件里

    出错:
    连接不上master 数据库服务器

    ping iptables selinux grant

    指定master数据库服务器的日志信息

    binlog日志文件名 pos点错误

    报错信息: Last_IO_Error: 错误信息提示


    Slave_SQL_Running: Yes
    执行本机中继binlog日志文件里的sql命令把数据写进本机的库

    里。


    出错: 执行本机中继binlog日志文件里的sql命令,用到的库表

    记录不存在。

    报错信息: Last_SQL_Error: 错误信息提示


    修改方法:
    stop slave;
    change master 选项=值,选项=值;
    start slave;


    把从恢复为独立为独立的数据库服务器
    rm -rf stu-relay-bin.* relay-log.info master.info
    /etc/init.d/mysql restart
    +++++++++++++++++++++++++++++++++++
    二、mysql主从同步常用配置参数

    master 数据库服务器的配置参数
    vim /etc/my.cnf
    [mysqld]
    参数=值
    binlog-do-db=数据库名,数据库名
    binlog-ignore-db=数据库名,数据库名
    :wq

    /etc/init.d/mysql restart


    slave 数据库服务器的配置参数
    vim /etc/my.cnf
    [mysqld]
    参数=值
    replicate-do-db=数据库名
    replicate-ignore-db=数据库名
    relay-log=中继日志文件名
    log-slave-updates 级联复制

    :wq

    /etc/init.d/mysql restart

    +++++++++++++++++++++++++++++++++++

    三、配置mysql代理服务实现数据读写分离
    数据库服务器 103 99 配置
    grant all on *.* to jim@"%" indentified by "123";

    103 99 create database db1;
    create table db1.a(id int);

    103 insert db1.a values(103);
    99 insert db1.a values(99);


    117配置
    ping 172.40.50.103
    ping 172.40.50.99

    mysql -h172.40.50.103 -ujim -p123
    mysql -h172.40.50.99 -ujim -p123

    tar -zxvf mysql-proxy-tar.gz
    mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit/

    /usr/local/mysqlproxy

    chmod +x /usr/local/mysqlproxy/shear/doc/mysql-

    proxy/rw-splitting.lua

    rpm -q lua || yum -y install

    netstat -utnalp | grep :3306

    /usr/local/mysqlproxy/bin/mysql-proxy -P

    172.40.50.117:3306 -r 172.40.50.139:3306 -b

    172.40.50.136:3306 -s

    /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-

    splitting.lua &


    netstat -utnalp | grep :3306

    测试
    ping 172.40.50.117
    which mysql || yum -y install mysql

    mysql -h172.40.50.117 -ujim -p123
    mysql>

    +++++++++++++++++++++++++++++++++

    四、mysql性能调优
    当数据库服务器处理用户的请求慢的时候,可能是由于什么原因

    造成的?

    1 硬件配置低 (cpu 内存 硬盘)
    2 网络带宽


    3 提供数据库服务的软件版本低 my.cnf说明文档
    服务运行参数设置不合理

    mysql数据库服务器处理查询请求的过程?

    show variables like ""
    set global 变量名=值


    mysqld

    select * from t1 order by age;
    select * from t1;


    thread-cache-size=10
    table-open-cache=13


    select * from t1; ----> 查询缓存里找

    表里 /var/lib/mysql/db1/t1.frm t1.ibd

    pc1 select name from t1 where name=jim;
    查询缓存里 name=jim

    pc2 select name from t1 where name=jim;

    pc3 update t1 set name=lucy where name=jim;

    4 程序员对数据库里数据操作的sql命令写的有问题。
    4.1 获取程序员编写的超过指定时间显示查询结果的sql命令

    开启mysql数据库服务的慢查询日志
    vim /etc/my.cnf
    [mysqld]
    slow-query-log
    slow-query-log-file=名
    long-query-time=5
    log-queries-not-using-indexes
    :wq

    主机-slow.log 默认命名格式
    mysqldumpslow stu-slow.log 统计慢查询日志的记录信息


    查询日志: 记录客户端连接数据库服务器后 ,执行的所有SQL

    操作。

    vim /etc/my.cnf
    [mysqld]
    general-log
    general-log-file=名
    :wq

    主机.log 默认命名格式
    cat 主机.log

  • 相关阅读:
    06.django升级打怪学习记
    05.django升级打怪学习记
    04.django升级打怪学习记
    03.django升级打怪学习记
    02.django升级打怪学习记
    python学习手册笔记——39.元类
    python学习手册笔记——35.异常的设计
    关于我
    [Jenkins]Console Output中文显示问号的问题解决
    [Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed
  • 原文地址:https://www.cnblogs.com/zhehan/p/7230388.html
Copyright © 2011-2022 走看看