人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

MySQL讀取my.cnf的順序問題詳情

發(fā)布日期:2022-02-07 17:31 | 文章來源:源碼之家

MySQL讀取my.cnf的順序

一、mysql.server啟動方式

basedir=/opt/mysql/mysql3315
datadir=/opt/mysql/mysql3315/data

進行查找,在解析參數(shù)文件的時候會帶入 -e進行解析

/opt/mysql/mysql3315/bin/my_print_defaults -e /opt/mysql/mysql3315/my.cnf mysqld server mysql_server mysql.server

也就是—defaults-extra-file,獲取的目錄包含basedir、datadir、pid-file,但是pid-file參數(shù)可能不存在

使用如下

if test -z "$mysqld_pid_file_path"
then
  mysqld_pid_file_path=$datadir/`hostname`.pid
else
  case "$mysqld_pid_file_path" in
    /* ) ;;
    * )  mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;
  esac
fi

換算出位置和文件名。最終調入的參數(shù)如下:

/opt/mysql/mysql3315/bin/mysqld_safe --datadir=/opt/mysql/mysql3315/data/ --pid-file=/opt/mysql/mysql3315/data//mgr4.pid

二、mysqld_safe啟動方式

  • 通過mysqld_safe位置進行反推,反推能夠得到basedir目錄,并且會設置MYSQL_HOME為basedir
  • 然后解析參數(shù)文件需要獲取的參數(shù)比較多,不進行列舉
/opt/mysql/mysql3315/bin/my_print_defaults mysqld server mysql_server mysql.server

注意:這里沒有設置-e因為設置了MYSQL_HOME目錄會自行解析其下面的參數(shù)文件,解析位置見最后。

  • 啟動mysqld
nohup /opt/mysql/mysql3315/bin/mysqld --basedir=/opt/mysql/mysql3315 --datadir=/opt/mysql/mysql3315/data 
--plugin-dir=/opt/mysql/mysql3315/lib/plugin --user=mysql 
--log-error=/opt/mysql/mysql3315/logs/mysql3315.err --pid-file=/opt/mysql/mysql3315/data//mgr4.pid 
--socket=/opt/mysql/mysql3315/data/mysql3315.sock --port=3315

注意:有open_files_limits的情況下這里會帶上open_file_limits而覆蓋mysqld使用的參數(shù)文件中的配置

  • 循環(huán)監(jiān)控pid文件

啟動后會進行如下的循環(huán),會通過eval命令堵塞在mysqld的調用,如果進程退出則返回,進行循環(huán)判斷,最后會根據pid是否存在判斷是否是正常的關閉mysqld判斷方式是kill -0 pid進行判斷mysqld進程是否存在。不存在則拉起來。

while true
do
  echo 1
  start_time=`date +%M%S`
  eval_log_error "$cmd"
  • 關于加載jemalloc
if [ -n "$mysqld_ld_library_path" ]; then
  new_text="$mysqld_ld_library_path"
  [ -n "$LD_LIBRARY_PATH" ] && new_text="$new_text:$LD_LIBRARY_PATH"
  text="${text}LD_LIBRARY_PATH="`shell_quote_string "$new_text"`' '
fi
  • 自己使用mysqld_safe 啟動
```
/home/work/ssd1/mysql/install/bin/mysqld_safe —defaults-file=/home/work/ssd1/mysql/etc/3307/my.cnf —socket=/home/work/ssd1/mysql/sock/3307/mysql.sock —datadir=/home/work/ssd1/mysql/data/3307 —user=mysql &

如果這樣啟動my_print_defaults 會帶上 —defaults-file

/opt/mysql/mysql3320/install/bin/my_print_defaults —defaults-file=/home/work/ssd1/mysql/etc/3307/my.cnf —loose-verbose mysqld server

三、關于mysqld和my_print_defaults讀取my.cnf順序

實際上這個函數(shù)init_default_directories函數(shù)中
其中順序為:

<—defaults-file最先讀取,并且為只讀取這個配置文件,并且為第一個選項>

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • DEFAULT_SYSCONFDIR 編譯時配置下的my.cnf
  • MYSQL_HOME 設置。mysqld_safe會設置MYSQL_HOME,就會讀取下面的my.cnf。
  • —defaults-extra-file的設置,my_print_defaults和mysqld均由這個設置。
  • ~/.my.cnf
  • 從解析的順序來看最后會加載命令行參數(shù)。

解析完成后全部參數(shù)羅列,多個同名參數(shù)以最后一個生效

到此這篇關于MySQL讀取my.cnf的順序問題詳情的文章就介紹到這了,更多相關MySQL讀取my.cnf的順序內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

香港穩(wěn)定服務器

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部