• Mysql 配置文件管理


    数据库配置文件

    1.配置文件作用

    1)我不知道我的程序在哪?
    	--basedir=
    2)我也不知道我将来启动后去哪找数据库数据?
    	--datadir
    3)将来我启动的时候启动信息和错误信息放在哪?
    	$datadir/db01.err
    4)我启动的时候sock文件pid文件放在哪?
    	$datadir/mysql.pid
    5)我启动,你们给了我多少内存?
        在配置文件中可以配置mysql的预分配内存空间。
    

    2.预编译阶段配置

    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.20 \
    -DMYSQL_DATADIR=/application/mysql-5.6.20/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.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 
    

    1.数据库配置方式

    2)配置文件

    vim /etc/my.cnf
    basedir=			# mysql二进制包安装的位置
    datadir=			# 数据目录存放的位置,由用户指定注意权限问题
    socket=			    # socket 文件位置
    server_id=			# 配置server id
    log_err=			# mysql的错误日志存放地址
    log_bin=			# bin-log日志的存放地址
    
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    

    3)命令行

    --skip-grant-tables 			# 跳过授权表启动
    --skip-networking				# 跳过网络授权启动,就是user@IP 后面的ip限制不会生效谁都可以连接
    --datadir=/application/mysql/data	# 指定启动的数据目录
    --basedir=/application/mysql		# mysql的安装目录
    --defaults-file=/etc/my.cnf			# 配置文件地址
    --pid-file=/application/mysql/data/db01.pid		# 指定pid文件对的存放地址
    --socket=/application/mysql/data/mysql.sock		# 指定socket的文件存放地址
    --user=mysql				# 启动用户
    --port=3306					#  启动端口
    --log-error=/application/mysql/data/db01.err	# 启动日志存放目录
    
    # 查看数据库支持的字符串
    mysql> show collation;
    

    2.数据库配置文件

    1)配置文件位置

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

    2)配置文件读取顺序

    1./etc/my.cnf           4
    2./etc/mysql/my.cnf     3
    3.$basedir/my.cnf       2
    4.~/.my.cnf             1
    

    3)配置文件优先级

    # 因为 ~/.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
    
  • 相关阅读:
    继续聊WPF——进度条
    转 std::vector成员函数
    转: std::string用法详解
    TCP,IP,HTTP,SOCKET区别和联系
    C语言中的字符串截取函数及应用
    字符串截取函数
    VIM快捷键:
    TCP/IP,HTTP,SOAP等协议之区别
    【转】 c语言string类函数实现汇总
    int型转化为std::string
  • 原文地址:https://www.cnblogs.com/gshelldon/p/15918044.html
Copyright © 2020-2023  润新知