ホームページ >データベース >mysql チュートリアル >Mysql サービスを開始および停止する方法を説明します 2
3. サーバーを停止します
サーバーを手動で起動するには、MySQLadmin を使用します:
%mysqladmin shutdown
サーバーを自動的に停止するには、特別なことをする必要はありません。 BSD システムは通常、プロセスに TERM シグナルを送信することによってサービスを停止します。プロセスはそれに正しく応答するか、無作法に強制終了されます。 mysqld は、このシグナルを受信すると終了して応答します。 mysql.server を使用してサーバーを起動する System V スタイルのシステムの場合、停止プロセスは stop パラメーターを指定してスクリプトを呼び出し、サーバーに終了するよう指示します (もちろん mysql.server がインストールされていることが前提です)。
4. サーバーに接続できない場合にサーバーの制御を取り戻す方法
場合によっては、サーバーに接続できないため、手動でサーバーを再起動することがあります。もちろん、これは少し矛盾しています。一般的にはサーバーに接続して手動でオフにするのが一般的ですが、なぜこれが起こるのでしょうか?
まず、MySQL の root パスワードが不明な値に設定されている可能性があります。これは、たとえば、新しいパスワードを入力するときに誤って非表示の制御文字を入力した場合など、パスワードを変更するときに発生する可能性があります。パスワードを忘れてしまう可能性もあります。
次に、localhost への接続は通常、Unix ドメイン ソケット ファイル (通常は /tmp/mysql.sock) を通じて行われます。ソケット ファイルが削除されると、ローカル クライアントは接続できなくなります。これは、システムが /tmp 内の一時ファイルを削除する cron ジョブを実行するときに発生する可能性があります。
ソケット ファイルを紛失したために接続できない場合は、サーバーを再起動するだけで再作成できます。サーバーが起動時に再作成するためです。ここでのコツは、ソケットがなくなっているため、ソケットとの接続を確立できないということです。TCP/IP 接続を確立する必要があります。たとえば、サーバー ホストが pig.snake.net の場合、次のように接続できます:
%mysqladmin -p - u root -h pig.snake.net shutdown
ソケット ファイルが cron タスクによって削除された場合、cron タスクを変更するか、cron タスクを変更するか、別のソケット ファイルを使用しない限り、問題は再発します。グローバルを使用できます。オプション ファイルは別のソケットを指定します。たとえば、データ ディレクトリが /usr/local/var の場合、次の行を /etc/my.cnf に追加することでソケット ファイルをそこに移動できます:
[ mysqld ]
socket=/usr/local/var/mysql.sock
[client]
socket=/usr/local/var/mysql.sock
サーバーとクライアントの両方が使用するように、両方へのパス名を指定します。同じソケットの Access ファイル。サーバーのパスのみを設定した場合、クライアントは元の場所でソケットを実行することを期待し、変更後にサーバーを再起動して、新しい場所にソケットを作成します。
root パスワードを忘れた、または思っていたのと異なる値に設定したために接続できず、サーバーの制御を取り戻す必要がある場合は、パスワードを再度設定できます:
サーバーを中断します
root としてサーバーホストにログインすると、kill コマンドを使用してサーバーを終了できます。サーバー プロセス ID は、ps コマンドを使用するか、サーバーの PID ファイル (通常はデータ ディレクトリ内) を検索することで確認できます。
まずサーバーに TERM シグナルを送信する通常の kill を試して、サーバーが通常の終了で応答するかどうかを確認するのが最善です。こうすることで、テーブルとログが正しくクリアされます。サーバーがブロックし、正常な終了信号に応答しない場合は、kill -9 を使用してサーバーを強制終了できます。フラッシュされていない変更が存在する可能性があり、テーブルが不整合な状態のままになる危険があるため、これは最後の手段です。
kill -9 でサーバーを強制終了する場合は、サーバーを起動する前に myisamchk と isamchk でテーブルを確認してください。
--skip-grant-table オプションを使用してサーバーを再起動します。
これにより、接続の認証に認証テーブルを使用しないようにサーバーに指示され、パスワードなしで root として接続できるようになります。接続したら、root パスワードを変更します。
mysqladmin flash-privileges を使用して、サーバーに認可テーブルの使用を再度開始するように指示します。
mysqladmin バージョンが Flash-privilege を認識しない場合は、リロードしてみてください。
5. 複数のサーバーの実行
ほとんどの場合、特定のマシン上で単一の MySQL サーバーが実行されますが、複数のサーバーを実行すると便利な状況は数多くあります。
運用サーバーを稼働させたまま、新しいバージョンのサーバーをテストしたい場合があります。この場合、別のサーバー コードを実行します。
オペレーティング システムは通常、プロセスごとに開いているファイル ハンドルの数を制限します。システムでこの制限を上げることが難しい場合は、複数のサーバーを実行することが制限を回避する 1 つの方法です。この場合、統合サーバーの複数のインスタンスを実行している可能性があります。
多くの場合、ISP は顧客に独自の MySQL インストールを提供しますが、その場合は別のサーバーが必要になります。この場合、同じバージョンの複数のインスタンスを実行することも、異なる顧客が異なるバージョンの MySQL を必要とする場合は異なるバージョンのインスタンスを実行することもできます。
当然のことながら、複数のサーバーを実行することは、1 つだけを実行する場合よりも複雑になります。複数のバージョンをインストールする場合、すべてを同じ場所にインストールすることはできません。サーバーの実行時には、サーバーのインストール場所、データ ディレクトリのパス名、サーバーの実行に使用される TCP/IP ポート、および UNIX ドメイン ソケットのパス名などの特定のパラメータが各サーバーに固有である必要があります。サーバーの UNIX アカウント (すべてのサーバーを同じアカウントで実行しなくなった場合)。複数のサーバーを実行する場合は、使用するパラメーターに注意してください。
以上がMysql サービスを開始および停止する方法を説明します 2の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。