zoukankan      html  css  js  c++  java
  • 第七节:MySQL 的配置文件

    一、MySQL的配置文件

      1、my.ini 是什么

        my.ini是MySQL数据库中使用的配置文件,修改这个文件可以达到更新配置的目的。

      2、my.ini 存放在哪里

        (1)以MySQL5.5为例,my.ini 存放在MySQL的安装的根目录

          

         (2)以 MySQL5.6 | MySQL5.7 | MySQL 8.0 的配置文件存放在 C:ProgramData下面:

          

             

             

             

          注意:修改完配置文件,一定需要重复 MySQL 服务。

    二、my.ini 的配置文件内容

      1 # MySQL Server Instance Configuration File
      2 # ----------------------------------------------------------------------
      3 # Generated by the MySQL Server Instance Configuration Wizard
      4 #
      5 #
      6 # Installation Instructions
      7 # ----------------------------------------------------------------------
      8 #
      9 # On Linux you can copy this file to /etc/my.cnf to set global options,
     10 # mysql-data-dir/my.cnf to set server-specific options
     11 # (@localstatedir@ for this installation) or to
     12 # ~/.my.cnf to set user-specific options.
     13 #
     14 # On Windows you should keep this file in the installation directory 
     15 # of your server (e.g. C:Program FilesMySQLMySQL Server X.Y). To
     16 # make sure the server reads the config file use the startup option 
     17 # "--defaults-file". 
     18 #
     19 # To run run the server from the command line, execute this in a 
     20 # command line shell, e.g.
     21 # mysqld --defaults-file="C:Program FilesMySQLMySQL Server X.Ymy.ini"
     22 #
     23 # To install the server as a Windows service manually, execute this in a 
     24 # command line shell, e.g.
     25 # mysqld --install MySQLXY --defaults-file="C:Program FilesMySQLMySQL Server X.Ymy.ini"
     26 #
     27 # And then execute this in a command line shell to start the server, e.g.
     28 # net start MySQLXY
     29 #
     30 #
     31 # Guildlines for editing this file
     32 # ----------------------------------------------------------------------
     33 #
     34 # In this file, you can use all long options that the program supports.
     35 # If you want to know the options a program supports, start the program
     36 # with the "--help" option.
     37 #
     38 # More detailed information about the individual options can also be
     39 # found in the manual.
     40 #
     41 #
     42 # CLIENT SECTION
     43 # ----------------------------------------------------------------------
     44 #
     45 # The following options will be read by MySQL client applications.
     46 # Note that only client applications shipped by MySQL are guaranteed
     47 # to read this section. If you want your own MySQL client program to
     48 # honor these values, you need to specify it as an option during the
     49 # MySQL client library initialization.
     50 #
     51 [client]
     52 
     53 port=3306
     54 
     55 [mysql]
     56 
     57 default-character-set=utf8
     58 
     59 
     60 # SERVER SECTION
     61 # ----------------------------------------------------------------------
     62 #
     63 # The following options will be read by the MySQL Server. Make sure that
     64 # you have installed the server correctly (see above) so it reads this 
     65 # file.
     66 #
     67 [mysqld]
     68 
     69 # The TCP/IP Port the MySQL Server will listen on
     70 port=3306
     71 
     72 
     73 #Path to installation directory. All paths are usually resolved relative to this.
     74 basedir="D:/MySQL/MySQL Server 5.5/"
     75 
     76 #Path to the database root
     77 datadir="D:/MySQL_Data/MySQL Server 5.5/Data/"
     78 
     79 # The default character set that will be used when a new schema or table is
     80 # created and no character set is defined
     81 character-set-server=utf8
     82 
     83 # The default storage engine that will be used when create new tables when
     84 default-storage-engine=INNODB
     85 
     86 # Set the SQL mode to strict
     87 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
     88 
     89 # The maximum amount of concurrent sessions the MySQL server will
     90 # allow. One of these connections will be reserved for a user with
     91 # SUPER privileges to allow the administrator to login even if the
     92 # connection limit has been reached.
     93 max_connections=100
     94 
     95 # Query cache is used to cache SELECT results and later return them
     96 # without actual executing the same query once again. Having the query
     97 # cache enabled may result in significant speed improvements, if your
     98 # have a lot of identical queries and rarely changing tables. See the
     99 # "Qcache_lowmem_prunes" status variable to check if the current value
    100 # is high enough for your load.
    101 # Note: In case your tables change very often or if your queries are
    102 # textually different every time, the query cache may result in a
    103 # slowdown instead of a performance improvement.
    104 query_cache_size=15M
    105 
    106 # The number of open tables for all threads. Increasing this value
    107 # increases the number of file descriptors that mysqld requires.
    108 # Therefore you have to make sure to set the amount of open files
    109 # allowed to at least 4096 in the variable "open-files-limit" in
    110 # section [mysqld_safe]
    111 table_cache=256
    112 
    113 # Maximum size for internal (in-memory) temporary tables. If a table
    114 # grows larger than this value, it is automatically converted to disk
    115 # based table This limitation is for a single table. There can be many
    116 # of them.
    117 tmp_table_size=18M
    118 
    119 
    120 # How many threads we should keep in a cache for reuse. When a client
    121 # disconnects, the client's threads are put in the cache if there aren't
    122 # more than thread_cache_size threads from before.  This greatly reduces
    123 # the amount of thread creations needed if you have a lot of new
    124 # connections. (Normally this doesn't give a notable performance
    125 # improvement if you have a good thread implementation.)
    126 thread_cache_size=8
    127 
    128 #*** MyISAM Specific options
    129 
    130 # The maximum size of the temporary file MySQL is allowed to use while
    131 # recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
    132 # If the file-size would be bigger than this, the index will be created
    133 # through the key cache (which is slower).
    134 myisam_max_sort_file_size=100G
    135 
    136 # If the temporary file used for fast index creation would be bigger
    137 # than using the key cache by the amount specified here, then prefer the
    138 # key cache method.  This is mainly used to force long character keys in
    139 # large tables to use the slower key cache method to create the index.
    140 myisam_sort_buffer_size=35M
    141 
    142 # Size of the Key Buffer, used to cache index blocks for MyISAM tables.
    143 # Do not set it larger than 30% of your available memory, as some memory
    144 # is also required by the OS to cache rows. Even if you're not using
    145 # MyISAM tables, you should still set it to 8-64M as it will also be
    146 # used for internal temporary disk tables.
    147 key_buffer_size=23M
    148 
    149 # Size of the buffer used for doing full table scans of MyISAM tables.
    150 # Allocated per thread, if a full scan is needed.
    151 read_buffer_size=64K
    152 read_rnd_buffer_size=256K
    153 
    154 # This buffer is allocated when MySQL needs to rebuild the index in
    155 # REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
    156 # into an empty table. It is allocated per thread so be careful with
    157 # large settings.
    158 sort_buffer_size=256K
    159 
    160 
    161 #*** INNODB Specific options ***
    162 
    163 
    164 # Use this option if you have a MySQL server with InnoDB support enabled
    165 # but you do not plan to use it. This will save memory and disk space
    166 # and speed up some things.
    167 #skip-innodb
    168 
    169 # Additional memory pool that is used by InnoDB to store metadata
    170 # information.  If InnoDB requires more memory for this purpose it will
    171 # start to allocate it from the OS.  As this is fast enough on most
    172 # recent operating systems, you normally do not need to change this
    173 # value. SHOW INNODB STATUS will display the current amount used.
    174 innodb_additional_mem_pool_size=2M
    175 
    176 # If set to 1, InnoDB will flush (fsync) the transaction logs to the
    177 # disk at each commit, which offers full ACID behavior. If you are
    178 # willing to compromise this safety, and you are running small
    179 # transactions, you may set this to 0 or 2 to reduce disk I/O to the
    180 # logs. Value 0 means that the log is only written to the log file and
    181 # the log file flushed to disk approximately once per second. Value 2
    182 # means the log is written to the log file at each commit, but the log
    183 # file is only flushed to disk approximately once per second.
    184 innodb_flush_log_at_trx_commit=1
    185 
    186 # The size of the buffer InnoDB uses for buffering log data. As soon as
    187 # it is full, InnoDB will have to flush it to disk. As it is flushed
    188 # once per second anyway, it does not make sense to have it very large
    189 # (even with long transactions).
    190 innodb_log_buffer_size=1M
    191 
    192 # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
    193 # row data. The bigger you set this the less disk I/O is needed to
    194 # access data in tables. On a dedicated database server you may set this
    195 # parameter up to 80% of the machine physical memory size. Do not set it
    196 # too large, though, because competition of the physical memory may
    197 # cause paging in the operating system.  Note that on 32bit systems you
    198 # might be limited to 2-3.5G of user level memory per process, so do not
    199 # set it too high.
    200 innodb_buffer_pool_size=42M
    201 
    202 # Size of each log file in a log group. You should set the combined size
    203 # of log files to about 25%-100% of your buffer pool size to avoid
    204 # unneeded buffer pool flush activity on log file overwrite. However,
    205 # note that a larger logfile size will increase the time needed for the
    206 # recovery process.
    207 innodb_log_file_size=10M
    208 
    209 # Number of threads allowed inside the InnoDB kernel. The optimal value
    210 # depends highly on the application, hardware as well as the OS
    211 # scheduler properties. A too high value may lead to thread thrashing.
    212 innodb_thread_concurrency=10

    三、my.ini 的配置参数说明

      1、客户端参数

     1 # CLIENT SECTION
     2 # ----------------------------------------------------------------------
     3 #
     4 # The following options will be read by MySQL client applications.
     5 # Note that only client applications shipped by MySQL are guaranteed
     6 # to read this section. If you want your own MySQL client program to
     7 # honor these values, you need to specify it as an option during the
     8 # MySQL client library initialization.
     9 #
    10 [client]
    11 
    12 port=3306
    13 
    14 [mysql]
    15 
    16 default-character-set=utf8

        上面显示的是客户端的参数,[client]和[mysql]都是客户端,下面是参数简介:

    port参数表示的是MySQL数据库的端口,默认的端口是3306,如果你需要更改端口号的话,就可以通过在这里修改。
    
    default-character-set参数是客户端默认的字符集,如果你希望它支持中文,可以设置成gbk或者utf8。
    
    这里还有一个password参数,在这里设置了password参数的值就可以在登陆时不用输入密码直接进入
    

      

      2、服务器端参数

     1 # SERVER SECTION
     2 # ----------------------------------------------------------------------
     3 #
     4 # The following options will be read by the MySQL Server. Make sure that
     5 # you have installed the server correctly (see above) so it reads this 
     6 # file.
     7 #
     8 [mysqld]
     9 
    10 # The TCP/IP Port the MySQL Server will listen on
    11 port=3306
    12 
    13 
    14 #Path to installation directory. All paths are usually resolved relative to this.
    15 basedir="D:/MySQL/MySQL Server 5.5/"
    16 
    17 #Path to the database root
    18 datadir="D:/MySQL_Data/MySQL Server 5.5/Data/"
    19 
    20 # The default character set that will be used when a new schema or table is
    21 # created and no character set is defined
    22 character-set-server=utf8
    23 
    24 # The default storage engine that will be used when create new tables when
    25 default-storage-engine=INNODB
    26 
    27 # Set the SQL mode to strict
    28 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    29 
    30 # The maximum amount of concurrent sessions the MySQL server will
    31 # allow. One of these connections will be reserved for a user with
    32 # SUPER privileges to allow the administrator to login even if the
    33 # connection limit has been reached.
    34 max_connections=100
    35 
    36 # Query cache is used to cache SELECT results and later return them
    37 # without actual executing the same query once again. Having the query
    38 # cache enabled may result in significant speed improvements, if your
    39 # have a lot of identical queries and rarely changing tables. See the
    40 # "Qcache_lowmem_prunes" status variable to check if the current value
    41 # is high enough for your load.
    42 # Note: In case your tables change very often or if your queries are
    43 # textually different every time, the query cache may result in a
    44 # slowdown instead of a performance improvement.
    45 query_cache_size=15M
    46 
    47 # The number of open tables for all threads. Increasing this value
    48 # increases the number of file descriptors that mysqld requires.
    49 # Therefore you have to make sure to set the amount of open files
    50 # allowed to at least 4096 in the variable "open-files-limit" in
    51 # section [mysqld_safe]
    52 table_cache=256
    53 
    54 # Maximum size for internal (in-memory) temporary tables. If a table
    55 # grows larger than this value, it is automatically converted to disk
    56 # based table This limitation is for a single table. There can be many
    57 # of them.
    58 tmp_table_size=18M
    59 
    60 
    61 # How many threads we should keep in a cache for reuse. When a client
    62 # disconnects, the client's threads are put in the cache if there aren't
    63 # more than thread_cache_size threads from before.  This greatly reduces
    64 # the amount of thread creations needed if you have a lot of new
    65 # connections. (Normally this doesn't give a notable performance
    66 # improvement if you have a good thread implementation.)
    67 thread_cache_size=8

        上面是服务器端参数,一下是参数的简介:

        1.port参数也是表示数据库的端口。
    
      2.basedir参数表示MySQL的安装路径。
    
      3.datadir参数表示MySQL数据文件的存储位置,也是数据库表的存放位置。
    
      4.default-character-set参数表示默认的字符集,这个字符集是服务器端的。
    
      5.default-storage-engine参数默认的存储引擎。
    
      6.sql-mode参数表示SQL模式的参数,通过这个参数可以设置检验SQL语句的严格程度。
    
      7.max_connections参数表示允许同时访问MySQL服务器的最大连接数,其中一个连接是保留的,留给管理员专用的。
    
      8.query_cache_size参数表示查询时的缓存大小,缓存中可以存储以前通过select语句查询过的信息,再次查询时就可以直接从缓存中拿出信息。
    
      9.table_cache参数表示所有进程打开表的总数。
    
      10.tmp_table_size参数表示内存中临时表的总数。
    
      11.thread_cache_size参数表示保留客户端线程的缓存。
    
      12.myisam_max_sort_file_size参数表示MySQL重建索引时所允许的最大临时文件的大小。
    
      13.myisam_sort_buffer_size参数表示重建索引时的缓存大小。
    
      14.key_buffer_size参数表示关键词的缓存大小。
    
      15.read_buffer_size参数表示MyISAM表全表扫描的缓存大小。
    
      16.read_rnd_buffer_size参数表示将排序好的数据存入该缓存中。
    
      17.sort_buffer_size参数表示用于排序的缓存大小
    

      

      3、MyISAM 存储引擎特有的选项

     1 #*** MyISAM Specific options
     2 
     3 # The maximum size of the temporary file MySQL is allowed to use while
     4 # recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
     5 # If the file-size would be bigger than this, the index will be created
     6 # through the key cache (which is slower).
     7 myisam_max_sort_file_size=100G
     8 
     9 # If the temporary file used for fast index creation would be bigger
    10 # than using the key cache by the amount specified here, then prefer the
    11 # key cache method.  This is mainly used to force long character keys in
    12 # large tables to use the slower key cache method to create the index.
    13 myisam_sort_buffer_size=35M
    14 
    15 # Size of the Key Buffer, used to cache index blocks for MyISAM tables.
    16 # Do not set it larger than 30% of your available memory, as some memory
    17 # is also required by the OS to cache rows. Even if you're not using
    18 # MyISAM tables, you should still set it to 8-64M as it will also be
    19 # used for internal temporary disk tables.
    20 key_buffer_size=23M
    21 
    22 # Size of the buffer used for doing full table scans of MyISAM tables.
    23 # Allocated per thread, if a full scan is needed.
    24 read_buffer_size=64K
    25 read_rnd_buffer_size=256K
    26 
    27 # This buffer is allocated when MySQL needs to rebuild the index in
    28 # REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
    29 # into an empty table. It is allocated per thread so be careful with
    30 # large settings.
    31 sort_buffer_size=256K

      4、INNODB 引擎的特有选项

     1 #*** INNODB Specific options ***
     2 
     3 
     4 # Use this option if you have a MySQL server with InnoDB support enabled
     5 # but you do not plan to use it. This will save memory and disk space
     6 # and speed up some things.
     7 #skip-innodb
     8 
     9 # Additional memory pool that is used by InnoDB to store metadata
    10 # information.  If InnoDB requires more memory for this purpose it will
    11 # start to allocate it from the OS.  As this is fast enough on most
    12 # recent operating systems, you normally do not need to change this
    13 # value. SHOW INNODB STATUS will display the current amount used.
    14 innodb_additional_mem_pool_size=2M
    15 
    16 # If set to 1, InnoDB will flush (fsync) the transaction logs to the
    17 # disk at each commit, which offers full ACID behavior. If you are
    18 # willing to compromise this safety, and you are running small
    19 # transactions, you may set this to 0 or 2 to reduce disk I/O to the
    20 # logs. Value 0 means that the log is only written to the log file and
    21 # the log file flushed to disk approximately once per second. Value 2
    22 # means the log is written to the log file at each commit, but the log
    23 # file is only flushed to disk approximately once per second.
    24 innodb_flush_log_at_trx_commit=1
    25 
    26 # The size of the buffer InnoDB uses for buffering log data. As soon as
    27 # it is full, InnoDB will have to flush it to disk. As it is flushed
    28 # once per second anyway, it does not make sense to have it very large
    29 # (even with long transactions).
    30 innodb_log_buffer_size=1M
    31 
    32 # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
    33 # row data. The bigger you set this the less disk I/O is needed to
    34 # access data in tables. On a dedicated database server you may set this
    35 # parameter up to 80% of the machine physical memory size. Do not set it
    36 # too large, though, because competition of the physical memory may
    37 # cause paging in the operating system.  Note that on 32bit systems you
    38 # might be limited to 2-3.5G of user level memory per process, so do not
    39 # set it too high.
    40 innodb_buffer_pool_size=42M
    41 
    42 # Size of each log file in a log group. You should set the combined size
    43 # of log files to about 25%-100% of your buffer pool size to avoid
    44 # unneeded buffer pool flush activity on log file overwrite. However,
    45 # note that a larger logfile size will increase the time needed for the
    46 # recovery process.
    47 innodb_log_file_size=10M
    48 
    49 # Number of threads allowed inside the InnoDB kernel. The optimal value
    50 # depends highly on the application, hardware as well as the OS
    51 # scheduler properties. A too high value may lead to thread thrashing.
    52 innodb_thread_concurrency=10

        上面是InnoDB存储引擎使用的参数,一下是参数的简介:

        1.innodb_additional_mem_pool_size参数表示附加的内存池,用来存储InnoDB表的内容。
    
      2.innodb_flush_log_at_trx_commit参数是设置提交日志的时机,若设置为1,InnoDB会在每次提交后将事务日志写到磁盘上。
    
      3.innodb_log_buffer_size参数表示用来存储日志数据的缓存区的大小。
    
      4.innodb_buffer_pool_size参数表示缓存的大小,InnoDB使用一个缓冲池类保存索引和原始数据。
    
      5.innodb_log_file_size参数表示日志文件的大小。
    
      6.innodb_thread_concurrency参数表示在InnoDB存储引擎允许的线程最大数。 
    

      

    四、Linux 下的配置文件

    五、

      推荐阅读:

        MySQL 配置文件详解

         MySQL my.cnf 参数配置优化详解

        MySQL InnoDB 存储引擎参数优化

  • 相关阅读:
    input不可编辑
    span width无效
    react配置rem解决移动端适配问题
    iframe 根据内容自适应高度-终极解决方案
    页面导入样式时,使用link和@import有什么区别?
    怎么让Chrome支持小于12px 的文字?
    React Hook 父子组件相互调用方法
    CSS3实现毛玻璃效果
    React阻止组件渲染
    JSX 中内联条件渲染的方法
  • 原文地址:https://www.cnblogs.com/niujifei/p/14852100.html
Copyright © 2011-2022 走看看