mysql數據庫重啟命令,mysql_safe作用_mysqld_safe

 2023-11-11 阅读 26 评论 0

摘要:mysqld_safe 作為mysqld 啟動腳本,開啟了守護mysqld進程的任務。本人學習心得如下:1、初始化腳本變量,若第一個參數是cnf,及時保存到defaults變量中2、查找basedir & leddir3、查找datadir & plugindir,my.cnf 文件4、以上3步,可以得到my

mysqld_safe 作為mysqld 啟動腳本,開啟了守護mysqld進程的任務。

本人學習心得如下:

1、初始化腳本變量,若第一個參數是cnf,及時保存到defaults變量中

2、查找basedir & leddir

3、查找datadir & plugindir,my.cnf 文件

4、以上3步,可以得到my_print_defaults程序和cnf文件

bin/my_print_defaults --defaults-file=/data/mydata/my3306/my3306.cnf --loose-verbose mysqld server

--log_slave_updates

--port=3306

--user=mysql

--pid-file=/data/mydata/my3306/my3306.pid

--datadir=/data/mydata/my3306

--basedir=/usr/local/mysql

5、解析參數,做了個trick,將參數名的下劃線統一為中劃線 得到各個變量的value

parse_arguments $print_defaults $defaults --loose-verbose mysqld server

6、errlog的處理方式,logiging=(file || syslog),file方式,會trick后綴.err,syslog方式的話,會利用my_which(),查找logger命令

7、對選項--user,--pid-file,--socket及--port進行處理及賦值,且用append_arg_to_args

8、判斷pidfile & mysqld進程是否存在

9、啟動守護邏輯 while true ---> eval_log_error "$cmd" ,

守護邏輯

若pidfile不存在,則是正常退出

若是啟動時間過短,這是

重要函數說明

usage() 打印腳本使用參數幫助

log_generic() log_error() log_notice() 打印日志的級別(daemon.error,daemon.notice)和方式(init,file,syslog)

eval_log_error() 控制啟動$cmd的輸出方式(file,syslog)

核心$cmd賦值

for i in "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION"

"--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"

do

cmd="$cmd "shell_quote_string "$i"

done

cmd="$cmd $args"

輸出方式

file) cmd="$cmd >> "shell_quote_string "$err_log"" 2>&1" ;;

syslog) cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error"

136 ;;

總結:選用mysqld_safe啟動的好處。

1、可以選擇配置參數文件啟動和默認啟動,參數過濾等,安全性提高

2、如果有的選項是mysqld_safe 啟動時特有的,那么可以終端指定,如果在配置文件中指定需要放在[mysqld_safe]組里面,放在其他組不能被正確解析。

3、mysqld_safe啟動能夠指定內核文件大小 ulimit -c $core_file_size以及打開的文件的數量ulimit -n $size。

4、守護mysqld進程

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/170919.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息