mysqld_safe之三言两语
2018-06-18 01:37:48来源:未知 阅读 ()
today,one buddy in IMG wechat group 2 asked "why i've installed the MySQL 5.7 on linux server,but there's no mysqld_safe command at all?"so,here i'd like to post this article to say something about it.first of all,let's see the command parameter and usage:
1 #mysqld_safe --help 2 Usage: /usr/local/mysql/bin/mysqld_safe [OPTIONS] 3 The following options may be given as the first argument: 4 --no-defaults Don't read the system defaults file 5 --defaults-file=FILE Use the specified defaults file 6 --defaults-extra-file=FILE Also use defaults from the specified file 7 8 Other options: 9 --ledir=DIRECTORY Look for mysqld in the specified directory 10 --open-files-limit=LIMIT Limit the number of open files 11 --core-file-size=LIMIT Limit core files to the specified size 12 --timezone=TZ Set the system timezone 13 --malloc-lib=LIB Preload shared library LIB if available 14 --mysqld=FILE Use the specified file as mysqld 15 --mysqld-version=VERSION Use "mysqld-VERSION" as mysqld 16 --nice=NICE Set the scheduling priority of mysqld 17 --plugin-dir=DIR Plugins are under DIR or DIR/VERSION, if 18 VERSION is given 19 --skip-kill-mysqld Don't try to kill stray mysqld processes 20 --syslog Log messages to syslog with 'logger' 21 --skip-syslog Log messages to error log (default) 22 --syslog-tag=TAG Pass -t "mysqld-TAG" to 'logger' 23 --mysqld-safe-log- TYPE must be one of UTC (ISO 8601 UTC), 24 timestamps=TYPE system (ISO 8601 local time), hyphen 25 (hyphenated date a la mysqld 5.6), legacy 26 (legacy non-ISO 8601 mysqld_safe timestamps) 27 28 All other options are passed to the mysqld program. 29 30 [root@zlm3 07:43:01 /data/mysql/mysql3306] 31 #
the most simplest usage of mysqld_safe way is to just use '--defaults-file' to specify which "my.cnf" you want to use,just like:
1 [root@zlm3 07:54:10 /usr/local/mysql/bin] 2 #pkill mysqld 3 4 [root@zlm3 07:54:40 /usr/local/mysql/bin] 5 #ps aux|grep mysqld 6 root 6302 0.0 0.0 112640 960 pts/0 R+ 07:54 0:00 grep --color=auto mysqld 7 8 [root@zlm3 07:54:51 /usr/local/mysql/bin] 9 #mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf & 10 [1] 6307 11 12 [root@zlm3 07:55:21 /usr/local/mysql/bin] 13 #2018-06-04T05:55:21.758814Z mysqld_safe Logging to '/data/mysql/mysql3306/data/error.log'. 14 2018-06-04T05:55:21.786306Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/mysql3306/data 15 ^C 16 17 [root@zlm3 07:55:35 /usr/local/mysql/bin] 18 #ps aux|grep mysqld 19 root 6307 0.1 0.1 113252 1628 pts/0 S 07:55 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf 20 mysql 7328 1.0 17.4 1069424 177592 pts/0 Sl 07:55 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=error.log --open-files-limit=65535 --pid-file=mysql.pid --socket=/tmp/mysql3306.sock --port=3306 21 root 7361 0.0 0.0 112640 960 pts/0 R+ 07:55 0:00 grep --color=auto mysqld 22 23 [root@zlm3 07:55:44 /usr/local/mysql/bin] 24 #
here we can see,there're two processes running,one is mysqld_safe,another one is the mysqld.even if you use "kill -9 7328" to stop the mysqld process,but subsequently you'll find that the mysqld will startup again soon,unless you kill mysqld process by using "pkill mysqld" as below:
1 [root@zlm3 07:55:44 /usr/local/mysql/bin] 2 #kill -9 7328 3 4 [root@zlm3 07:57:15 /usr/local/mysql/bin] 5 #/usr/local/mysql/bin/mysqld_safe: line 198: 7328 Killed nohup /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=error.log --open-files-limit=65535 --pid-file=mysql.pid --socket=/tmp/mysql3306.sock --port=3306 < /dev/null > /dev/null 2>&1 6 2018-06-04T05:57:15.076914Z mysqld_safe Number of processes running now: 0 7 2018-06-04T05:57:15.083092Z mysqld_safe mysqld restarted 8 ^C 9 10 [root@zlm3 07:57:20 /usr/local/mysql/bin] 11 #ps aux|grep mysqld 12 root 6307 0.0 0.1 113256 1676 pts/0 S 07:55 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf 13 mysql 7385 2.4 17.7 1081288 180624 pts/0 Sl 07:57 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=error.log --open-files-limit=65535 --pid-file=mysql.pid --socket=/tmp/mysql3306.sock --port=3306 14 root 7419 0.0 0.0 112640 960 pts/0 R+ 07:57 0:00 grep --color=auto mysqld 15 16 [root@zlm3 07:57:24 /usr/local/mysql/bin] 17 #pkill mysqld 18 19 [root@zlm3 07:57:37 /usr/local/mysql/bin] 20 #2018-06-04T05:57:38.957789Z mysqld_safe mysqld from pid file /data/mysql/mysql3306/data/mysql.pid ended 21 ^C 22 [1]+ Done mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf 23 24 [root@zlm3 07:57:48 /usr/local/mysql/bin] 25 #ps aux|grep mysqld 26 root 7439 0.0 0.0 112640 956 pts/0 R+ 07:57 0:00 grep --color=auto mysqld 27 28 [root@zlm3 07:57:55 /usr/local/mysql/bin] 29 #
For some Linux platforms, MySQL installation from RPM or Debian packages includes systemd support for managing MySQL server startup and shutdown. On these platforms, mysqld_safe is not installed because it is unnecessary. For more information, see Section 2.5.9, “Managing MySQL Server with systemd”.
therefore,if you want the mysqld_safe feature,i rather recommend you to install MySQL server with binary distribution instead of rpm distribution.
MySQL 8.0 Reference Manual /
4.3.2 mysqld_safe — MySQL Server Startup Script
mysqld_safe is the recommended way to start a mysqld server on Unix. mysqld_safe adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log. A description of error logging is given later in this section.
来源: https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html
summary:
another buddy in zst techique wechat group said that it will be messy in troubleshooting while using mysqld_safe to startup mysqld,'cause in some case,the mysqld_safe may lead to the ceaseless restarting of mysqld.furthermore,it may destroy the evidences and logs which can be diagnosted by DBAs.anyhow,in my opinion it depends:
- if the bussines continuity is the first thing you need to consider,i recommend to use mysqld_safe method.
- if your monitor system is strong enough or the application on the MySQL server is not so important such as enterprise management system,BBS system,i recommend to use mysqld method.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 运用mysqldump 工具时需注意的问题 2019-07-24
- 关于mysqldump备份非事务表的注意事项 2018-08-02
- 基于mysqldump备份集来恢复某个误操作的表(drop,truncate) 2018-07-27
- MySQL服务器连接过程分析 2018-07-13
- MySQL备份恢复之mysqldump 2018-06-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash