Mariadb/MySQL配置文件参数篇

         Mariadb/MySQL配置文件参数篇
html

                           做者:尹正杰 node

版权声明:原创做品,谢绝转载!不然将追究法律责任。mysql

 

 

一.针对MySQL主程序mysqld定义参数[mysqld] sql

1>.skip-networking=1数据库

  关闭网络链接,只侦听本地客户端, 全部和服务器的交互都经过一个socket实现,socket的配置存放在"/var/lib/mysql/mysql.sock",可在/etc/my.cnf修改
[root@node102.yinzhengjie.org.cn ~]# ss -ntl
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      50                                           *:3306                                                     *:*                  
LISTEN      0      128                                          *:22                                                       *:*                  
LISTEN      0      128                                         :::22                                                      :::*                  
[root@node102.yinzhengjie.org.cn ~]# 
[root@node102.yinzhengjie.org.cn ~]# grep -v ^# /etc/my.cnf  #关闭网络,将"skip-networking"的Value设置为1便可。    
[mysqld]
skip-networking    #关闭网络,此处咱们只须要把该属性写在这里就表示启用了,除非你显示指定其值为0(表示不启用),若是咱们这样写默认是启用了
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

[root@node102.yinzhengjie.org.cn ~]# 
[root@node102.yinzhengjie.org.cn ~]# systemctl restart mariadb      #重启服务,发现MySQL服务在正常运行可是并未对外暴漏端口。
[root@node102.yinzhengjie.org.cn ~]# 
[root@node102.yinzhengjie.org.cn ~]# ps aux | grep mysql | grep -v grep  #MySQL服务处于正常运行状态
root 8556 0.0 0.1 234060 4184 pts/0 S+ 07:50 0:00 mysql
mysql 10132 0.0 0.0 113308 1624 ? Ss 10:38 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql 10306 0.0 2.0 968688 81204 ? Sl 10:38 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/li
b64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sockroot     10342 0.0 0.1 234060 4180 pts/1 S+ 10:38 0:00 mysql -uroot -px xxxxxxxxx
[root@node102.yinzhengjie.org.cn ~]#
[root@node102.yinzhengjie.org.cn ~]# ss -ntl
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      128                                          *:22                                                       *:*                  
LISTEN      0      128                                         :::22                                                      :::*                  
[root@node102.yinzhengjie.org.cn ~]# 
[root@node102.yinzhengjie.org.cn ~]# mysql -uroot -pyinzhengjie               #本机基于socket文件依旧是能够正常访问的哟~
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:        2
Current database:    
Current user:        root@localhost
SSL:            Not in use
Current pager:        stdout
Using outfile:        ''
Using delimiter:    ;
Server:            MariaDB
Server version:        5.5.64-MariaDB MariaDB Server
Protocol version:    10
Connection:        Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /var/lib/mysql/mysql.sock
Uptime:            19 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 0  Flush tables: 2  Open tables: 26  Queries per second avg: 0.210
--------------

MariaDB [(none)]> 
[root@node102.yinzhengjie.org.cn ~]# grep -v ^# /etc/my.cnf  #关闭网络,将"skip-networking"的Value设置为1便可。(通常用于维护数据库使用)

2>.datadir安全

  指定MySQL数据库存放数据的目录。

3>.socket服务器

  指定socket文件路径。

4>.symbolic-links网络

  是否支持软链接,若不支持指定的路径不能为软链接。

5>.innodb_file_per_tablesocket

  该参数在mysql5.6.6及其后续版本默认开启,开启该参数的时候,Innodb将每一个新建立的表的数据及索引存储在一个独立的.ibd文件里,而不是系统的表空间。当这些innodb表被删除或清空的时候,存储空间会被回收。

  开启innodb_file_per_table(=ON):
    在ALTER TABLE操做重建表的状况下,会将innodb表从系统共享表空间移动到独立的.ibd文件。

  不开启innodb_file_per_table(=OFF):
    innodb会将全部表及索引的数据存储在构成系统表空间的ibdata文件。这样会下降文件系统操做的性能开销,例如DROP TABLE 或 TRUNCATE TABLE。它最适合于将整合磁盘都用于存储mysql数据的状况,由于系统表空间不会收缩,全部的数据库都在一个空间实例里面。当innodb_file_per_table=OFF的时候,应避免在空间受限的系统表空间里导入大量临时数据。

  innodb_file_per_table 可经过SET GLOBAL动态的修改成ON或OFF,也能够在my.cnf中作永久性修改,在my.cnf中修改后生效的话须要重启mysqld服务。

6>.skip_name_resolveide

  禁止主机名解析,建议使用。他会将IP地址解析成主机名而这个过程依赖于DNS服务,而你的网络中没有作名称解析可能会致使网络链接很是慢。

  博主推荐阅读:
    https://www.cnblogs.com/ivictor/p/5311607.html

7>.character-set-server

  指定服务端的字符集,例如:character-set-server=utf8mb4

8>.innodb_file_per_table

Innodb存储引擎可将全部数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间.

共享表空间: 
  某一个数据库的全部的表数据,索引文件所有放在一个文件中,默认这个共享表空间的文件路径在data目录下。 默认的文件名为:ibdata1 初始化为10M。
  优势:
    能够将表空间分红多个文件存放到各个磁盘上(表空间文件大小不受表大小的限制,如一个表能够分布在不一样的文件上)。数据和文件放在一块儿方便管理。
  缺点:
    全部的数据和索引存放到一个文件中,虽然能够把一个大文件分红多个小文件,可是多个表及索引在表空间中混合存储,这样对于一个表作了大量删除操做后表空间中将会有大量的空隙,特别是对于统计分析,日值系统这类应用最不适合用共享表空间。

 

独立表空间: 
  每个表都将会生成以独立的文件方式来进行存储,每个表都有一个.frm表描述文件,还有一个.ibd文件。 其中这个文件包括了单独一个表的数据内容以及索引内容,默认状况下它的存储位置也是在表的位置之中。

  优势:
    1>.每一个表都有自已独立的表空间。
    2>.每一个表的数据和索引都会存在自已的表空间中。
    3>.能够实现单表在不一样的数据库中移动。
    4>.空间能够回收(除drop table操做处,表空不能自已回收)
        Drop table操做自动回收表空间,若是对于统计分析或是日值表,删除大量数据后能够经过:alter table TableName engine=innodb;回缩不用的空间。
        对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。
        对于使用独立表空间的表,无论怎么删除,表空间的碎片不会太严重的影响性能,并且还有机会处理。
  缺点:
    1>.单表增长过大,如超过100个G。
    2>.相比较之下,使用独占表空间的效率以及性能会更高一点。

开启独立表空间,在配置文件(my.cnf)的[mysqld]中设置: innodb_file_per_table = 1(MariaDB 10.2.x版本默认是开启的哟~

9>.skip-grant-tables

  忽略受权表,这意味着将全部用户的受权操做给取消了。换句话说,关闭MySQL服务器的认证,从而能够重置root的密码。

10>.userstat

  开启查看索引使用工具。

11>.更多服务器参数信息

  因为Mysqld参数有不少,我这里就不能一一列举啦,我后面博客中也整理了不少参数,但并无统一罗列再次,不过万变不离其宗,更多服务器参数我们均可以在官网查阅到。官方给出了最权威的说明。

  博主推荐阅读:
    https://www.cnblogs.com/yinzhengjie/p/11758208.html
    https://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.html
    https://mariadb.com/kb/en/library/full-list-of-mariadb-options-system-and-status-variables/

 

二.针对MySQL安全性的参数[mysqld_safe]

1>.pid-file

  指定进程的pid号存放路径。
  案例:
    pid-file        = /mysql/3306/pid/mariadb.pid

2>.log-error

  存放错误日志文件。
  案例:
    log-error       = /mysql/3306/log/mariadb.log

3>.

 

三.针对MySQL多实例参数[mysqld_multi]

 

四.针对MySQL客户端参数[mysql]

1>.default-character-set

  指定客户端默认字符集,例如:default-character-set=utf8mb4

2>.safe-updates

  当用户使用UPDATE或者DELETE语句时须要加WHRER关键词进行过滤,不然没法对表中的数据进行修改。

  若是用户没有加WHERE继续过滤会有以下报错信息:
    "ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column"

3>.

 

五.针对MySQL备份相关参数[mysqldump]  

 

六.统一为服务器使用[server]

 

七.统一为客户端使用[client]

相关文章
相关标签/搜索