mysqld_safe启动脚本源码阅读分析:MySQL数据库启动流程与shell编程技巧

0 下载量 74 浏览量 更新于2024-08-28 收藏 111KB PDF 举报
mysqld_safe启动脚本源码阅读、分析 mysqld_safe是MySQL数据库的启动脚本,负责启动mysqld实例。该脚本对MySQL数据库的启动流程进行了详细的描述,包括查找MySQL相关目录、解析配置文件以及最后如何调用mysqld程序来启动实例等。同时,该脚本还涉及了许多shell编程中的小技巧,例如变量解析、sed替换转义、进程优先级的判断以及test结构等等。 **MySQL数据库启动流程** mysqld_safe脚本首先定义了一些状态变量,例如KILL_MYSQLD、MYSQLD、niceness等,其中KILL_MYSQLD用于标识是否需要kill多余的mysqld_safe程序,MYSQLD是mysqld二进制可执行文件的名称,niceness是进程的调度优先级标识。 然后,脚本定义了一些变量,例如logging、want_syslog、syslog_tag等,用于标识日志记录状态、是否使用syslog、syslog标志位等。 接下来,脚本定义了pid文件和错误日志的路径,用于存储mysqld实例的进程ID和错误日志。 **shell编程技巧** mysqld_safe脚本中涉及了许多shell编程中的小技巧,例如: * 变量解析:使用case语句来解析命令行参数,例如解析--no-defaults、--defaults-file和--defaults-extra-file选项。 * sed替换转义:使用sed命令来替换和转义字符串,例如将配置文件中的变量替换为实际值。 * 进程优先级的判断:使用niceness变量来设置进程的调度优先级。 * test结构:使用test结构来判断条件是否成立,例如判断是否需要kill多余的mysqld_safe程序。 **MySQL配置文件** mysqld_safe脚本还涉及了MySQL配置文件的解析,例如读取配置文件中的变量、设置mysqld实例的参数等。配置文件目录是/usr/local/mysql3306/etc,配置文件中定义了mysqld实例的参数,例如数据库目录、日志文件目录、错误日志文件目录等。 **环境变量** mysqld_safe脚本还涉及了环境变量的设置,例如umask、trap等。umask用于设置默认权限,trap用于捕捉信号,例如在终端上被人打断时的信号。 mysqld_safe启动脚本对MySQL数据库的启动流程进行了详细的描述,同时还涉及了许多shell编程中的小技巧,例如变量解析、sed替换转义、进程优先级的判断以及test结构等等。