亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql 多個參數選項文件my.cnf優先級研究

發布時間:2020-08-09 13:23:15 來源:ITPUB博客 閱讀:254 作者:神諭丶 欄目:MySQL數據庫
my.cnf是mysql服務器在unix平臺下默認的配置文件的文件名。

輸入my_print_defaults可以得出mysql server啟動時所讀取的my.cnf的順序:(一般為該四個,根據安裝方式、OS發行版、mysql版本而定)
或者 


  1. $ mysql --help | grep my.cnf

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/my.cnf(有的版本寫作/usr/local/mysql/etc/my.cnf) ~/.my.cnf 

也就是說,先讀取/etc/my.cnf,再去讀/etc/mysql/my.cnf,第三個讀/usr/local/mysql/my.cnf,其中,第三個為basedir,即mysql安裝目錄。
第四個為~/.my.cnf,這個~即為/home/$USERNAME,而$USERNAME為服務器啟動用戶。


在手冊中給出的順序是(由上至下讀取)

  1. File Name            Purpose
  2. /etc/my.cnf          Global options
  3. /etc/mysql/my.cnf    Global options
  4. SYSCONFDIR/my.cnf    Global options
  5. $MYSQL_HOME/my.cnf   Server-specific options
  6. defaults-extra-file  The file specified with --defaults-extra-file=path, if any
  7. ~/.my.cnf            User-specific options
  8. ~/.mylogin.cnf       Login path options



但通用的讀取先后順序為:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 
省略部分路徑。

其中/etc/my.cnf與/etc/mysql/my.cnf為全局選項文件
而~/.my.cnf為用戶選項文件


場景一:
Global options與Global options同時存在。
即/etc/my.cnf與/etc/mysql/my.cnf同時存在

疑問:如果/etc/my.cnf存在,還會去找/etc/mysql/my.cnf嗎?
如果是,那么是直接使用/etc/mysql/my.cnf文件
還是先使用/etc/my.cnf,再用/etc/mysql/my.cnf中呢?如果參數相同,后者覆蓋前者嗎?


實驗:
/etc/my.cnf
[mysqld]
long_query_time = 15
slow_query_log  = on
autocommit = off

/etc/mysql/my.cnf
[mysqld]
long_query_time = 12
slow_query_log = on


查詢:

  1. mysql> show variables like 'autocommit';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | autocommit    | OFF   |
  6. +---------------+-------+
  7. 1 row in set (0.00 sec)

  8. mysql> show variables like 'long_query_time';
  9. +-----------------+-----------+
  10. | Variable_name   | Value     |
  11. +-----------------+-----------+
  12. | long_query_time | 12.000000 |
  13. +-----------------+-----------+
  14. 1 row in set (0.01 sec)


此時先用了/etc/my.cnf中的autocommit=off。
雖然slow_query_log都有設置,但是參數相同,/etc/mysql/my.cnf優先級更大,故為12s。


繼續實驗:
刪除/etc/my.cnf


$ sudo mv /etc/my.cnf /etc/my.cnf.bk


重啟服務器,查詢:

  1. mysql> show variables like 'autocommit';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | autocommit    | ON    |
  6. +---------------+-------+
  7. 1 row in set (0.00 sec)

  8. mysql> show variables like 'long_query_time';
  9. +-----------------+-----------+
  10. | Variable_name   | Value     |
  11. +-----------------+-----------+
  12. | long_query_time | 12.000000 |
  13. +-----------------+-----------+
  14. 1 row in set (0.01 sec)

此時只用了/etc/mysql/my.cnf。




場景二:
Global options與User-specific options同時存在
即/etc/my.cnf與~/.my.cnf同時存在


實驗:
同樣先刪除其他配置文件,確保只剩如下兩個位置:

/etc/my.cnf
[mysqld]
long_query_time = 15
slow_query_log  = on
autocommit = off


~/.my.cnf
[mysqld]
long_query_time = 12
slow_query_log = on


編輯好后保存退出

查詢


  1. mysql> show variables like 'autocommit';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | autocommit    | OFF   |
  6. +---------------+-------+
  7. 1 row in set (0.00 sec)

  8. mysql> show variables like 'long_query_time';
  9. +-----------------+-----------+
  10. | Variable_name   | Value     |
  11. +-----------------+-----------+
  12. | long_query_time | 12.000000 |
  13. +-----------------+-----------+
  14. 1 row in set (0.01 sec)




autocommit默認是on
long_query_time默認是10


說明/etc/my.cnf已經生效
autocommit = off
雖然有設置
long_query_time = 15


但是
~/.my.cnf
中有設置
long_query_time = 12
故~/.my.cnf也有生效,在存在相同選項時,優先級高于Global options的/etc/my.cnf。


結論:
當多個my.cnf存在時:
Global optionsUser-specific options同時存在時,User-specific options優先級高于Global options并兩者都會讀取,若選項相同,則優先級高者覆蓋前者
雖然/etc/my.cnf與/etc/mysql/my.cnf均為Global options,但是規則也同樣和Global options與User-specific options一致。




作者微信公眾號(持續更新)
mysql 多個參數選項文件my.cnf優先級研究

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陕西省| 信阳市| 深泽县| 武宁县| 海阳市| 淮阳县| 银川市| 青神县| 怀仁县| 色达县| 泽州县| 雷州市| 霍城县| 仪征市| 澄迈县| 舒城县| 璧山县| 韩城市| 清徐县| 莲花县| 武义县| 都昌县| 图们市| 昭通市| 会理县| 武鸣县| 临高县| 济宁市| 夏津县| 南和县| 台北县| 库尔勒市| 乐业县| 仪征市| 潞城市| 吐鲁番市| 永兴县| 泊头市| 华安县| 噶尔县| 通道|