mysql_safe作用_mysqld_safe

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进程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值