zoukankan      html  css  js  c++  java
  • MySQL数据库配置文件之优先级

    1.数据库配置方式

    1)预编译

    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 
    -DMYSQL_DATADIR=/application/mysql-5.7.20/data 
    -DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_EXTRA_CHARSETS=all 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
    -DWITH_ZLIB=bundled 
    -DWITH_SSL=bundled 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_EMBEDDED_SERVER=1 
    -DENABLE_DOWNLOADS=1 
    -DWITH_DEBUG=0 
    

    2)配置文件

    vim /etc/my.cnf
    basedir=
    datadir=
    socket=
    server_id=
    log_err=
    log_bin=
    

    3)命令行

    --skip-grant-tables 
    --skip-networking
    --datadir=/application/mysql/data
    --basedir=/application/mysql
    --defaults-file=/etc/my.cnf
    --pid-file=/application/mysql/data/db01.pid
    --socket=/application/mysql/data/mysql.sock
    --user=mysql
    --port=3306
    --log-error=/application/mysql/data/db01.err
    

    2.数据库配置文件

    1)配置文件

    /etc/my.cnf
    /etc/mysql/my.cnf
    $basedir/my.cnf
    ~/.my.cnf
    
    #defaults-extra-file (类似include)
    

    2)配置文件读取顺序

    # 注意: 使用方式为/etc/init.d/方式启动才行,如果使用systemctl方式启动会读取文件:
    /usr/lib/systemd/system/mysqld.service 里面有写默认读取文件为/etc/my.cnf 对配置文件的读取顺序则不会以下面为准。
    1./etc/my.cnf           
    2./etc/mysql/my.cnf     
    3.$basedir/my.cnf       
    4.~/.my.cnf             
    

    3)配置文件优先级

    # 虽然第二步的读取顺序首先读取文件/etc/my.cnf但是后面继续读取文件,会将上次读取内容覆盖,所以还是最后读取的优先级最高,然后依次
    1.~/my.cnf
    2.$basedir/my.cnf
    3./etc/mysql/my.cnf
    4./etc/my.cnf
    

    4)配置文件生效顺序测试

    #配置~/.my.cnf
    [root@db03 ~]# vim ~/.my.cnf
    [mysqld]
    server_id=1
    
    #配置$basedir/my.cnf
    [root@db03 ~]# vim /service/mysql/my.cnf 
    [mysqld]
    server_id=2
    
    #配置/etc/mysql/my.cnf
    [root@db03 ~]# vim /etc/mysql/my.cnf
    [mysqld]
    server_id=3
    
    #配置/etc/my.cnf
    [root@db03 ~]# vim /etc/my.cnf
    server_id=4
    
    #重启数据库
    [root@db03 ~]# /etc/init.d/mysqld start
    
    #查看id测试
    [root@db03 ~]# mysql -uroot -p123 -e 'show variables like "server_id"'
    Warning: Using a password on the command line interface can be insecure.
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 4     |
    +---------------+-------+
    

    3.配置生效顺序

    #1.预编译制定socket文件
    cmake . -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.46/tmp/mysql.sock
    
    #2.配置文件制定
    [root@db02 ~]# vim /etc/my.cnf
    [mysqld]
    socket=/tmp/mysql.sock
    
    #3.配置a.txt
    [root@db02 ~]# vim a.txt
    [mysqld]
    socket=/opt/mysql.sock
    
    #4.命令行
    --socket=/tmp/commond.sock
    
    #5.分别使用以下命令测试生效的配置
    [root@db02 ~]# mysqld_safe --defaults-file=a.txt --socket=/tmp/commond.sock &
    [root@db02 ~]# mysqld_safe --defaults-file=a.txt
    [root@db02 ~]# mysqld_safe
    
    #6.查看socket文件位置判断优先级
    

    4.mysql配置优先级总结

    #优先级从高到低
    命令行 > --defaults-file > ~/my.cnf > $basedir/my.cnf > /etc/mysql/my.cnf > /etc/my.cnf > defaults-extra-file > 初始化 > 预编译
    

    5.配置文件的作用

    1)作用

    1.影响客户端的连接
    2.影响服务端启动
    

    2)影响客户端的连接

    [root@db02 ~]# vim /etc/my.cnf
    [mysqld]
    socket=/tmp/mysql.sock
    [mysql]
    socket=/tmp/mysql.sock
    user=root
    password=123
    
    #不需要重启,直接mysql就可以连接数据库
    

    3)影响服务端启动

    [root@db02 ~]# vim /etc/my.cnf
    [mysqld]
    socket=/tmp/mysql.sock
    server_id=1
    
    #配置server_id,必须要重启,查看才生效
    

    4)总结

    1.客户端也受配置文件影响			[mysql]     [client]
    2.客户端配置以后可以不重启
    3.服务端配置以后必须重启			[mysqld]	[server]
    4.企业一般配置
    
    [root@db02 ~]# vim /etc/my.cnf
    [mysqld]
    socket=/tmp/mysql.sock
    server_id=1
    [mysql]
    socket=/tmp/mysql.sock
    
  • 相关阅读:
    (干货).NET开发丰富的公共类库助你事半功倍(供下载免费使用)
    .NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等
    IOS条形码扫描
    企业架构研究总结(2)——问题的由来和基本概念(转载)
    企业架构研究总结(1)——参考资料列表(转载)
    理解.NET中的异常(一)
    [转]《Java Generics and Collections》读书笔记三:协变式覆盖与泛型重载
    [转]《Java Generics and Collections》读书笔记二:子类化与通配符
    转:C++单例模式
    [转] java package import
  • 原文地址:https://www.cnblogs.com/tcy1/p/13299683.html
Copyright © 2011-2022 走看看