旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

service敕令治理mysql启动和住手的要领引见【MySQL教程】,日志,pid,mysql,linux运维,service

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:58评论:0


导读:本篇文章给人人带来的内容是关于service敕令治理mysql启动和住手的要领引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。装置完成mysql以后,每...
本篇文章给人人带来的内容是关于service敕令治理mysql启动和住手的要领引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

装置完成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网别的相干文章!

标签:日志pidmysqllinux运维service


欢迎 发表评论: