serviceコマンドを使ったmysqlの起動と停止方法の紹介

不言
リリース: 2019-03-22 11:26:25
転載
7322 人が閲覧しました

この記事では、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) などを管理するために使用されます。 。サービス コマンド自体は、タスクを完了するためにスクリプトを簡単に呼び出すために使用されるシェル スクリプトであり、/etc/init.d/ ディレクトリ内で指定されたサービス スクリプトを検索します。

関連するコマンドは次のとおりです:

chkconfig: サービスの実行レベルの表示と設定に使用されます

ntsysv: サービスの自動開始の設定に使用されます

サービスは、指定されたサービス (System V 初期スクリプトと呼ばれる) を実行し、2 つの環境変数 LANG と TERM のみを保持し、現在のパスを / に設定します。サービス スクリプトをサービスによって管理したい場合は、少なくとも開始コマンドと停止コマンドをサポートし、スクリプトを /etc/init.d/ ディレクトリに保存する必要があります。

サービスの使用方法

## 命令格式
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
ログイン後にコピー

サービスを使用して mysqld サービスを管理する

基本的な知識はすでに理解しているので、変換を開始できます。まず、mysql.server を見つける必要があります。インストールディレクトリ内のファイル。

$ locate mysql.server
/usr/local/mysql/support-files/mysql.server
ログイン後にコピー

このファイルはインストール中に初期化されます。実際には、さまざまな機能を実行するためのさまざまなパラメータの入力をサポートするスクリプト ファイルです。その開始関数:

# 根据输入的命令执行不同的脚本,首先判断是否为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 mysqld start
ログイン後にコピー

いくつかの問題が発生しました

上記の理論は次のとおりです。非常に簡単ですが、起動プロセス中にいくつかの問題が発生しました。問題を解決する最も簡単な方法は、Google でログ ファイルを確認することです。これら 2 つの方法により、問題をすばやく見つけて解決できます。

構成ファイルは無視されます

起動時のエラー メッセージを直接確認してください:

$ 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).
ログイン後にコピー

エラーの理由は、PID ファイルが更新されていないために、MySQL の起動時に予期せず終了したことを示しています。

現時点では、理解できない人もいるかもしれません。問題ありません。エラー ログを直接見てみましょう:

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 サービス: 現在:

$ service mysqld start
Starting MySQL.                                            [  OK  ]
ログイン後にコピー

要約

Service サービス管理ツールは、アプリケーションを迅速に開始および停止するのに役立ちます。 Mysql を開始するプロセスでは、ログ ファイルの表示と Google での検索をマスターすることが私たちにとって最大の助けになります。

この記事はここで終了しました。その他のエキサイティングなコンテンツについては、PHP 中国語 Web サイトの MySQL チュートリアル ビデオ 列に注目してください。

以上がserviceコマンドを使ったmysqlの起動と停止方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!