回復中です200GB新しくインストールするデータベースRHELマシン。ところで復元をしてから問題が生じましたno space available
。
データベースの保存ディレクトリを変更できますか?
答え1
まず、次のクエリのみを使用してスペースの問題に関連していることを確認できますmysql
。
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
上記のコマンドで私に返された出力は次のとおりです。
+---------------------------+----------------------------+
| Variable_name | Value |
+---------------------------+----------------------------+
| basedir | /usr |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| lc_messages_dir | /usr/share/mysql/ |
| plugin_dir | /usr/lib/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+---------------------------+----------------------------+
上記のコマンドでわかるように、データディレクトリに存在します/var/lib/mysql
。データベースを収容するのに十分なスペースがないことを確認する必要があります/var
。この場合、検索は正しいです。次のコマンドを使用して実装しました。
df -P /var | tail -1 | cut -d' ' -f 1
上記のコマンドは、デフォルトで特定のディレクトリのマウントポイントを通知します。私が疑ったように、マウントポイント/dev/sda2
に40GBスペース。今、データディレクトリを変更することは非常に簡単です。
mysql サービスを停止するために使用します。
service mysqld stop
/etc/my.cnf
次のようにファイルを編集します。データディレクトリスペースが十分なパーティションに。 (これはRHELに固有のもので、OSのバージョンによって異なる場合があります)。変化データディレクトリ、コマンドを使用して mysql サービスを再起動し、
service mysqld start
引用する
答え2
はい、.dbファイルのdatadir変数を変更してMySQLデータベースデータの場所を変更できます/etc/my.cnf
。
以下の手順を試す前に、データをバックアップしてください。
- mysqldサービスを停止します(
systemctl mysqld stop
)。 /etc/my.cnf
datadir変数を編集して目的の場所(datadir='insert_path_to_new_location'
)に変更し、次の手順のために前の場所をメモします。- 古い datadir 位置のデータを新しい場所にコピーします。
- mysqldサービス(
systemctl mysqld start
)を起動します。 - mysqldサービスが新しい場所で正しく機能していることを確認してください。
- 古いデータディレクトリの残りの部分をクリーンアップ!
答え3
はい、my.cnfファイルの設定を使用して、MySQLデータベースの場所を変更できます。