LAMPスタックのコンポーネントをCentOS/RHEL 7サーバーにインストールした後、実行したいことがいくつかあります。
それらのいくつかは、ApacheとMySQL / MariaDBのセキュリティを強化することに関係していますが、その他は、セットアップやニーズに応じて適用できる場合とできない場合があります。
たとえば、データベースサーバーの予想される使用法に基づいて、デフォルトのデータを変更したい場合があります。 ディレクトリ(/var/lib/mysql
)別の場所に。これは、使用率が高いためにそのようなディレクトリが大きくなることが予想される場合です。
それ以外の場合、/var
のファイルシステム 保存されているものは、ある時点で崩壊し、システム全体に障害が発生する可能性があります。デフォルトのディレクトリを変更するもう1つのシナリオは、実際のデータを保存するために使用する専用のネットワーク共有がある場合です。
このため、この記事では、デフォルトのMySQL/MariaDBデータディレクトリをCentOS/RHEL7サーバーおよびUbuntu/Debianディストリビューションで別のパスに変更する方法について説明します。
MariaDBを使用しますが 、説明されている概念とこの記事で実行されている手順は、 MySQLの両方に適用されます。 およびMariaDB 特に明記されていない限り。
デフォルトのMySQL/MariaDBデータディレクトリの変更
/mnt/mysql-data
であると想定します。 。このディレクトリはmysql:mysql
が所有する必要があることに注意してください。 。
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
ご参考までに、プロセスを5つのわかりやすいステップに分割しました。
ステップ1:現在のMySQLデータディレクトリを特定する
まず、次のコマンドを使用して現在のデータディレクトリを特定することをお勧めします。まだ/var/lib/mysql
であると思い込まないでください 過去に変更された可能性があるためです。
# mysql -u root -p -e "SELECT @@datadir;"
MySQLパスワードを入力すると、出力は次のようになります。
ステップ2:MySQLデータディレクトリを新しい場所にコピーする
データの破損を防ぐために、サービスが現在実行中の場合は、続行する前にサービスを停止してください。 systemdを使用する そうするためのよく知られたコマンド:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
サービスが停止した場合、最後のコマンドの出力は次のようになります。
次に、/var/lib/mysql
の内容を再帰的にコピーします /mnt/mysql-data
へ 元の権限とタイムスタンプを保持する:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
ステップ3:新しいMySQLデータディレクトリを構成する
構成ファイルを編集します(my.cnf
)新しいデータディレクトリ(/mnt/mysql-data
この場合)。
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
[mysqld]
を見つけます および[client]
セクションを作成し、次の変更を加えます。
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
変更を保存してから、次の手順に進みます。
ステップ4:SELinuxセキュリティコンテキストをデータディレクトリに設定する
この手順は、 RHEL / CentOSにのみ適用されます およびその派生物。
SELinuxセキュリティコンテキストを/mnt/mysql-data
に追加します MariaDBを再起動する前に。
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
次に、MySQLサービスを再起動します。
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
ここで、ステップ1と同じコマンドを使用します 新しいデータディレクトリの場所を確認するには:
# mysql -u root -p -e "SELECT @@datadir;"
ステップ5:データディレクトリを確認するためのMySQLデータベースを作成する
MariaDBにログインし、新しいデータベースを作成してから、/mnt/mysql-data
を確認します。 :
# mysql -u root -p -e "CREATE DATABASE tecmint;"
おめでとう! MySQLまたはMariaDBのデータディレクトリが正常に変更されました。
概要
この投稿では、CentOS /RHEL7およびUbuntu/Debianディストリビューションで実行されているMySQLまたはMariaDBサーバーのデータディレクトリを変更する方法について説明しました。
この記事について質問やコメントがありますか?以下のフォームを使用して、お気軽にお知らせください。いつでもご連絡をお待ちしております。