service敕令治理mysql启动和住手的要领引见【MySQL教程】,日志,pid,mysql,linux运维,service
装置完成mysql以后,每次启动和住手都很贫苦,有时刻记不住去网上搜一下,瞥见人人都用service来举行效劳的治理,试了一下,果真好用。引荐人人也要这么用。
启动和住手mysql效劳
# 启动 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/tmp/mysql.sock # 住手 kill `cat /usr/local/mysql/var/mysqld.pid`
如许启动和住手须要记着mysql的途径和pid的保存位置,因而比较贫苦。
service 体系效劳治理
service敕令用于治理体系效劳,比方启动(start),住手(stop),重启(restart),检察状况(status)等。service敕令自身就是一个shell剧本,用于轻易的挪用该剧原本完成任务,它在/etc/init.d/目次下查找指定的效劳剧本。
相干的敕令另有:
chkconfig:用于检察、设置效劳的运转级别
ntsysv:用于设置效劳的自启动
service运转指定效劳(称为System V初始剧本),只保存LANG和TERM两个环境变量,并设置当前途径为/。假如一个效劳剧本想要由service举行治理,最少须要支撑start和stop敕令,并将剧本保存在/etc/init.d/目次下。
service的运用体式格局
## 敕令花样 Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ] # 检察指定效劳的敕令行运用协助 service <service> ## mysqld 举例 $ service mysqld Usage: mysqld {start|stop|restart|reload|force-reload|status} [ MySQL server options ] # 启动、住手、重启指定效劳 service <service> start|stop|restart ## mysqld举例restart,即先实行stop再实行start敕令 $ service mysqld restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ] # 显现指定效劳的状况 $ service mysqld status MySQL running (27390) [ OK ] # 显现一切效劳的状况 service --status-all # 检察体系效劳列表,以及每一个效劳的运转级别 chkconfig --list # 设置指定效劳开机时是不是自动启动 chkconfig <service> on|off # 以全屏幕文本界面设置效劳开机时是不是自动启动 # 必需以root启动,空格切换状况,tab切换按钮,高低鼠标挪动光标 ntsysv
除了用mysqld示破例,我们修正了主机名、IP地点等信息时,也要常常重启收集见效,此时能够挪用:
service network status|restart
用service治理mysqld效劳
我们已了解了基本的学问,如今就可以够最先革新了,起首要在你的装置目次里找到mysql.server文件。
$ locate mysql.server /usr/local/mysql/support-files/mysql.server
这个文件在装置时初始化,实在也就是一个剧本文件,支撑输入差别的参数实行差别的功用,我们能够检察它的start函数:
# 依据输入的敕令实行差别的剧本,起首推断是不是为start case "$mode" in 'start') # Start daemon # Safeguard (relative paths, core dumps..) cd $basedir echo $echo_n "Starting MySQL" # 检察该bin/mysqld_safe敕令是不是存在,假如不存在,就直接报错:找不到 if test -x $bindir/mysqld_safe then # Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. # 直接实行mysqld_safe敕令,并传入参数,然后建立pid文件 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$? # Make lock for RedHat / SuSE if test -w "$lockdir" then touch "$lock_file_path" fi exit $return_value else log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)" fi ;; 'stop')
然后将它复制到/tmp/init.d/目次下:
cp /usr/local/mysql/support-files/mysql.server /tmp/init.d/mysqld
此时,就可以够直接挪用service来举行启动了:
service mysqld start
碰到的一些题目
上面的理论很简朴,但在启动的过程当中照样碰到了一些题目,处理题目最简朴的要领就是Google+检察日记文件,这两个要领能够非常快的速率定位并处理。
设置文件被疏忽
直接看启动时的报错信息:
$ service mysqld start Warning: World-writable config file '/etc/my.cnf' is ignored Starting MySQL.Warning: World-writable config file '/etc/my.cnf' is ignored
直接看报错缘由,提醒的是全局可写的设置文件被疏忽。这个毛病是指该设置文件能够被一切用户修正,因而有被歹意改动的能够,因而不会引入这个文件的设置,疏忽。
处理方案就是将该文件改成用户和用户组可读写,其他用户只读不可写:
chmod 664 /etc/my.cnf
PID文件没法建立
直接看报错信息:
$ service mysqld start Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid).
报错缘由显现,启动MySQL
时不测退出,由于没有更新PID
文件。
这个时刻,能够有些人看不太懂,没紧要,我们直接看毛病日记:
2019-03-21 22:29:45 32896 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/usr/var/mysql/var/mysqld.pid' (Errcode: 2 - No such file or directory) 2019-03-21 22:29:45 32896 [ERROR] Can't start server: can't create PID file: No such file or directory
这个日记就很清晰的写明了没法建立这个mysqld.pid文件,要么是权限题目,要么是途径不存在的题目,背面看发明是途径写错了,更改成准确的途径即可。
毛病日记途径的设置:
$ vim my.cnf [mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data pid-file = /usr/var/mysql/var/mysqld.pid log-error = /user/local/mysql/log/mysql.err
log指令被烧毁
处理了上面的题目,我们继承实行,依旧发明一样的报错信息,然则日记文件却差别了:
$ service mysqld start Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid). # 日记文件 2019-03-21 22:37:33 0 [ERROR] /usr/local/mysql/bin/mysqld: ambiguous option '--log=/usr/local/mysql/log/mysql.log' (log-bin, log_slave_updates) 2019-03-21 22:37:33 0 [ERROR] Aborting
发明日记报错信息提醒:隐约的选项--log,这个不太邃晓,Google一下就可以看到缘由:--log指令已被烧毁很久了,如今运用--general-log来替代。修正my.cnf设置文件即可:
$ vim my.cnf [mysqld] general-log = /user/local/mysql/log/mysql.log
启动胜利
处理了上面这些题目,终究能够胜利启动了,这个时刻我们能够轻易的对mysqld效劳举行启停以及reload了:
$ service mysqld start Starting MySQL. [ OK ]
总结
Service效劳治理工具,能够协助我们疾速的启停应用程序。在Mysql启动的过程当中,控制日记文件的检察和Google的搜刮,对我们来说是最大的助力。
本篇文章到这里就已悉数完毕了,更多其他精彩内容能够关注ki4网的MySQL教程视频栏目!
以上就是service敕令治理mysql启动和住手的要领引见的细致内容,更多请关注ki4网别的相干文章!