zoukankan      html  css  js  c++  java
  • MySQL多实例安装

    为什么要使用多实例

    1.物理机强劲,单个项目无法把资源使用完。

    2.限制单个实例数据库大小,备份好做。

    3.资源隔离,减少互相影响。

    4.分担连接数。mysql随连接数上升,性能严重下降。

    5.充分利用资源。不同业务错开高峰混跑。

    mysql启动默认使用my.cnf文件顺序

    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

    /etc/my.cnf < /etc/mysql/my.cnf < /usr/local/mysql/etc/my.cnf < ~/.my.cnf

    后面覆盖前面配置。

    innodb_buffer_size 会自动调整为128的倍数

    -----------------------------------------------------------------------------------------------

    使用strace跟踪mysqld启动,能看到详细调用。

    strace -o /tmp/11.log  -ttt /usr/local/mysql/bin/mysqld

    ......

    1529632226.754417 stat("/etc/my.cnf", {st_mode=S_IFREG|0644, st_size=9697, ...}) = 0
    1529632226.754491 open("/etc/my.cnf", O_RDONLY) = 3
    1529632226.754549 fstat(3, {st_mode=S_IFREG|0644, st_size=9697, ...}) = 0
    1529632226.754593 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f249a169000
    1529632226.754637 read(3, "[client] port = 3306 "..., 4096) = 4096
    1529632226.754745 read(3, "n_load_add ="..., 4096) = 4096
    1529632226.754832 read(3, "fer_pool_dump_pct "..., 4096) = 1505
    1529632226.754895 read(3, "", 4096) = 0
    1529632226.754942 close(3) = 0
    1529632226.754982 munmap(0x7f249a169000, 4096) = 0
    1529632226.755035 stat("/etc/mysql/my.cnf", 0x7ffe5fac6710) = -1 ENOENT (No such file or directory)
    1529632226.755088 stat("/usr/local/mysql/etc/my.cnf", 0x7ffe5fac6710) = -1 ENOENT (No such file or directory)
    1529632226.755143 stat("/root/.my.cnf", 0x7ffe5fac6710) = -1 ENOENT (No such file or directory)

    ------------------------------------------------------------------------------------------------------------------------------

    多实例安装

    1.配置文件多份。

    cp /etc/my.cnf /home/mysql/mysqldata

    sed -i 's/3306/3309/g' ./my.cnf            # socket文件记得改

    2.初始化

    /usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/mysqldata/my.cnf --initialize

    3.启动mysql

    /usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/mysqldata/my.cnf &

    4.修改密码

    mysql -S /tmp/mysql3309.sock -p

    alter user user() identified by 'root123';

    -------------------------------------------------------------------------------------------------------------

    修改my.cnf 中,能比较好看点

    [mysql]

    prompt="\u@\h:\p [\d]>"

    Option  Description
    c  A counter that increments for each statement you issue
    D  The full current date
    d The default database
    h The server host
    l The current delimiter (new in 5.1.12)
    m  Minutes of the current time
      A newline character
    O  The current month in three-letter format (Jan, Feb, …)
    o  The current month in numeric format
    P  am/pm
    p The current TCP/IP port or socket file
    R  The current time, in 24-hour military time (0–23)
      The current time, standard 12-hour time (1–12)
    S  Semicolon
    s  Seconds of the current time
      A tab characte

    在操作系统上有些参数需要做优化的,拷贝别人的。

    网给方面的配置, 要修改/etc/sysctl.conf文件
    增加tcp支持的队列数
    net.ipv4.tcp_max_syn_backlog = 65535
    减少断开连接时 ,资源回收
    net.ipv4.tcp_max_tw_buckets = 8000
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 10

    打开文件的限制
    可以便用ulimit -a目录的刍各位限制,可以修改/etc/security/limits.conf文件 增加以下内容以修改打开文件数量的限制
    *soft nofile 65535
    *hard nofile 65535
    除此之外最好在MySQL服务器上关闭iptables,selinux 等防火墙软件。

  • 相关阅读:
    快学Scala 第6章 对象
    Ch05 类
    Ch04 映射和元组
    Ch03 数组相关操作
    Ch02 控制结构和函数
    Ch01 基础
    28.创建对象两种方式、对象的方法、属性、获取属性值的两种方法、属性名含特殊符号时获取属性值的方法、添加属性及值的方法、删除属性的方法、使用方式、遍历对象属性for(var prop in obj)
    27.函数循环扩展作业、非常重要涉及编程思想(一天看一遍) 编程思想其实就是算法,、感悟、演算
    26 .闭包 、函数表达式在for中无法接受实时改变的变量、 在for里要将函数表达式封装成闭包才能接受实时变化的参数,并要将函数表达式return出去
    25.函数例题-预解析 作用域 、函数变量优先级、全局变量污染(直接在全局声明 、 函数里的变量没声明)但是函数里的变量没声明造成的全局变量污染有个前提,函数要被调用)
  • 原文地址:https://www.cnblogs.com/emmm233/p/9212777.html
Copyright © 2011-2022 走看看