ホームページ >データベース >mysql チュートリアル >Mysql サービスの 1 つを開始および停止する方法を説明します。

Mysql サービスの 1 つを開始および停止する方法を説明します。

Y2J
Y2Jオリジナル
2017-05-23 14:42:092795ブラウズ

MySQL サーバーの起動方法を説明する前に、どのユーザーとして MySQL サーバーを実行するかを考えてみましょう。サーバーは手動または自動で起動できます。手動で起動すると、サーバーは Unix (Linux) にログインしたユーザーとして起動します。つまり、paul で Unix にログインしてサーバーを起動すると、su コマンドを使用して root に切り替えると、サーバーは paul で実行されます。 、次にサーバーを実行し、次に root として実行します。ただし、ほとんどの場合、サーバーを手動で起動する必要はなく、システムの起動時に、Unix で実行される標準ブート プロセスの一部として、MySQL サーバーが自動的に起動するように設定することになるでしょう。システムの Unix ユーザー root によって実行され、プロセス内で実行されているプロセスはすべて root 権限で実行されます。 MySQL サーバーの起動プロセス中は 2 つの目標に留意する必要があります:

サーバーを非 root ユーザーとして実行する必要があります。一般に、root 権限が本当に必要でない限り、実行中のプロセスの機能を制限する必要がありますが、MySQL では必要ありません。

サーバーを常に同じユーザーとして実行したい場合、あるユーザーと別のユーザーを使用すると、ファイルとディレクトリの所有者が異なるデータ ディレクトリが作成され、問題が発生する可能性があります。サーバーを実行するユーザーに応じて、データベースまたはテーブルにアクセスできなくなります。同じユーザーとしてサーバーを実行すると、この問題を回避できます。

サーバーを通常の特権のないユーザーとして実行するには、次の手順に従います:

サーバーを実行するユーザーを選択します。mysqld は任意のユーザーとして実行できます。ただし、概念的には、MySQL 操作用に別のユーザーを作成する方が明確です。 MySQL 専用のユーザー グループを選択することもできます。この記事
では、ユーザー名とユーザー グループ名としてそれぞれ mysqladm と mysqlgrp を使用します。
自分のアカウントで MySQL をインストールしており、システムに対する特別な管理権限を持っていない場合は、自分のユーザー ID でサーバーを実行できます。この場合、mysqladm と mysqlgrp を独自のログイン名とユーザー グループに置き換えます。
rpm ファイルを使用して MySQL を RedHat Linux にインストールする場合、インストールによって mysql という名前のアカウントが自動的に作成され、mysqladm の代わりにこのアカウントが使用されます。
必要に応じて、システムの通常のユーザー作成プロセスを使用してサーバー アカウントを作成します。これを行うには root である必要があります。
サーバーが実行中の場合は停止します。

データ ディレクトリとサブディレクトリおよびファイルの所有権を変更し、mysqladm ユーザーが所有するようにします。たとえば、データ ディレクトリが /usr/local/var の場合、次のように mysqladm の所有者を設定できます (これらのコマンドを root として実行する必要があります):

#cd /usr/local/var
#
chown
-R mysqladm.mysqlgrp
mysqladm ユーザーのみがアクセスできるように、データ ディレクトリとサブディレクトリおよびファイルの権限を変更します。データ ディレクトリが /usr/local/var の場合、mysqladm が所有するものをすべて設定できます:
# cd /usr/local/var
#
chmod
-R go-rwx
データ ディレクトリとその内容を設定するとき所有者とモードを指定するときは、シンボリック接続に注意してください。それらに従って、それらが指すファイルまたはディレクトリの所有権とモードを変更する必要があります。接続ファイルが配置されているディレクトリが自分の所有していない場所にあり、root になる必要がある場合、これは少し面倒になる可能性があります。 上記のプロセスを完了したら、常に mysqladm または root としてログインした状態でサーバーを起動し、サーバーがユーザーを切り替えられるように --user=mysqladm オプションを必ず指定してください。 mysqladm への ID (システム起動プロセスにも適用されます)。

--user オプションは MySQL 3.22 で導入されました。古いバージョンを使用している場合は、root として実行するときに特定のユーザーでサーバーを実行するようにシステムに指示するために su コマンドを使用できます。



サーバーの起動方法

サーバーの実行に使用するアカウントを決定したら、サーバーを起動する方法を選択できます。コマンドラインから手動で実行することも、システム起動中に自動的に実行することもできます。サーバーを起動するには主に 3 つの方法があります:

mysqld を直接呼び出します。

これは最も一般的ではない方法であり、これ以上使用しないことをお勧めします。そのため、この記事では詳しくは紹介しません。

safe_mysqld スクリプトを呼び出します。

safety_mysqld は、サーバー プログラムとデータ ディレクトリの場所を特定しようとします。次に、これらの値を反映するオプションを使用してサーバーが呼び出されます。 safe_mysqld は、標準エラー デバイスをサーバーからデータ ディレクトリ内のエラー ファイルに再配置し、その記録が残るようにします。サーバーの起動後、safe_mysqld もサーバーを監視し、サーバーが停止した場合は再起動します。 safe_mysqld は、BSD スタイルの Unix システムでよく使用されます。

sqfe_mysqld を root として起動するか、システムのブート中に起動すると、エラー ログは root によって所有されるため、後で非特権ユーザーでsafe_mysqld を呼び出そうとしたときに「許可が拒否されました」エラーが発生する可能性があります。エラーログを削除して再試行してください。
mysql.server スクリプトを呼び出します。

このスクリプトは、safe_mysqld.mysql.server 経由でサーバーを起動します。これは、System V の起動および停止システムで使用することを目的としており、マシンが特定のランレベルに入るとき、またはランレベルから出るときに呼び出されるいくつかのスクリプトが含まれています。 start または s
top パラメータ ポイントを使用して、サーバーを起動するか停止するかを指定できます。 safe_mysqld スクリプトは、MySQL インストール ディレクトリの bin ディレクトリにインストールされるか、MySQL ソース コード配布の scripts ディレクトリにあります。 mysql.server スクリプトは、MySQL インストール ディレクトリの下の share/mysqld ディレクトリにインストールされるか、MySQL ソース コード配布の support_file
s ディレクトリにあります。これらを使用する場合は、適切なディレクトリにコピーする必要があります。
BSD スタイルのシステム (FreeBSD、OpenBSD など) の場合、通常、ブート時にサービスを初期化するために /etc ディレクトリにいくつかのファイルがあります。これらのファイルは通常、「rc」で始まる名前を持ち、ファイル名 「rc.local」(または類似のもの)と呼ばれるファイル。特にローカルにインストールされたサービスを開始するために使用されます。このようなシステムでは、次のような行を rc.local ファイルに追加してサーバーを起動できます (safe_mysqld ディレクトリがシステムで異なる場合は、変更するだけです):

if
[ -x / usr /local/bin/safe_mysqld ]; 次に
/usr/local/bin/safe_mysqld & fi System V スタイルのシステムの場合、 mysql.server を /etc の下の適切な起動ディレクトリに配置してインストールできます。 Linux を実行していて、RPM ファイルから MySQL をインストールしている場合、これはすでに行われています。それ以外の場合は、メインの起動ディレクトリにスクリプトをインストールし、適切なランレベル ディレクトリにスクリプトへの接続を配置します。スクリプトを root だけが起動できるようにすることもできます。

起動ファイルのディレクトリレイアウトはシステムごとに異なるため、システムが起動ファイルをどのように構成しているかを確認する必要があります。たとえば、Linux PPC では、ディレクトリは /etc/rc.d および /etc/rc.d/rc3.d であるため、次のようにスクリプトをインストールできます:

#cp mysql.server /etc/rc.d /init.d
Solaris では、メイン スクリプト ディレクトリは /etc/init.d、ランレベル ディレクトリは /etc/rd2.d であるため、コマンドは次のようになります。

#cp mysql.server / etc/rc .d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
#ln -s ../init.d/mysql.server S99mysql
システムが起動すると、S99mysql スクリプトは自動的に開始パラメータ呼び出しを使用します。 chkconfig コマンド (Linux で利用可能) がある場合は、上記のように手動でコマンドを実行する代わりに、それを使用して mysql.server スクリプトをインストールできます。

起動オプションを指定する

サーバーの起動時に追加の起動オプションを指定したい場合は、2 つの方法があります。使用する起動スクリプト (safe_mysqld または mysql.server) を変更して、サーバーを呼び出す行に直接オプションを指定するか、オプション ファイルでオプションを指定できます。可能であれば、グローバル オプション ファイルでオプションを指定することをお勧めします。このファイルは通常 /etc/my.cnf (Unix) または c:my.cnf (Windows) にあります。

特定の種類の情報はサーバーオプションでは指定できません。これらについては、safe_mysqld を変更する必要がある場合があります。たとえば、サーバーがローカル タイム ゾーンを正しく選択できず、GMT で時刻値を返す場合は、TZ 環境変数 を設定して指示を与えることができます。サーバーをsafe_mysqldまたはmysql.serverで起動すると、safe_mysqldにタイムゾーン設定を追加できます。サーバーを起動する行を見つけて、その行の前に次のコマンドを追加します:
TZ=US/Central
export TZ

上記のコマンドの構文は Solaris です。他のシステムの構文は異なる場合があります。関連するドキュメントを参照してください。マニュアル。起動スクリプトを変更する場合は、次回 MySQL をインストールするとき (新しいバージョンへのアップグレードなど)、最初に起動スクリプトを別の場所にコピーしない限り、変更内容は失われることに注意してください。新しいバージョンをインストールした後、古いスクリプトと新しいスクリプトを比較して、再構築する必要がある変更を確認します。起動の最初にテーブルを確認します。システム ガイダンス中にサーバーが起動する場合を除き、サーバーの起動前にテーブルを確認するために MyISAMCHK および Isamchk スクリプトをインストールする必要がある場合があります。クラッシュ後に再起動している可能性があります。起動する前にテーブルを確認することが、問題を見つける良い方法です。

以上がMysql サービスの 1 つを開始および停止する方法を説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。