1、mysqld和mysqld_safe之间关系
mysqld_safe是一个启动脚本,用来启动MySQL服务器并监控MySQL服务的运行情况,并在其服务出现故障宕机后重启其服务。
mysql.server脚本其实也是调用mysql_safe脚本来启用MySQL服务器。
mysqld_safe通常做如下事情:1. 检查系统和选项。2. 检查MyISAM表。3. 保持MySQL服务器窗口。4. 启动并监视mysqld,如果因错误终止则重启。5. 将mysqld的错误消息发送到数据目录中的host_name.err 文件。6. 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件。
如在mysql进程因为内存溢出而关闭后,mysqld_safe进程检测到该问题后能自动重启mysqld,避免DBA人工介入。
如果要手动关闭mysqld进程,需要同时关闭mysqld_safe进程。
2、mysql相关可执行文件
mysqld是MySQL的守护进程,因此可以用mysqld来启动MySQL服务;
mysqld_safe是一个脚本,一个安全启动MySQL服务的脚本;
mysql.server也是一个脚本,通过mysqld_safe来启动MySQL服务。
mysqld_multi用于管理服务器上多个MySQL实例
mysqladmin用来配置和管理MySQL服务,也可以用来关闭MySQL服务
3、mysql服务启动时读取配置文件顺序
使用mysql --help可以看到mysql读取配置文件的顺序:
Default options are read from the following files inthe given order:/etc/my.cnf /etc/mysql/my.cnf /export/servers/mysql/etc/my.cnf ~/.my.cnf
The following groups are read: mysql client
The following options may be givenasthe first argument:--print-defaults Print the program argument list and exit.--no-defaults Don't read default options from any option file,
except forlogin file.--defaults-file=# Only read default options fromthe given file #.--defaults-extra-file=# Read this file after the globalfiles are read.--defaults-group-suffix=#
Also read groups with concat(group, suffix)--login-path=# Read this path from the login file.
错误处理1:
在启动和关闭MYSQL数据库时,如果有如下提示:
Warning: World-writable config file '/XXX/xxx/my.cnf' isignored
表明当前MYSQL使用的配置文件权限存在问题,任何用户都可以修改MYSQL配置文件,存在安全隐患。
解决办法:
使用chmod来修改文件权限
chmod644 /XXX/xxx/my.cnf
然后重启MYSQL服务。
错误处理2:
在使用mysql_install_db创建系统数据库时,显示错误:/usr/bin/perl: bad interpreter: No such file or directory
使用yum-y install perl安装perl 5后,错误变为:
Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/mysql_install_db line 42.
BEGIN failed--compilation aborted at /usr/bin/mysql_install_db line 42使用yum-y install perl-CPAN来安装perl-CPAN模块
错误处理3:
错误提示:The server quit without updating PID file
解决办法:修改/etc/selinux/config配置,设置SELINUX=disabled