【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

mysqlのデータを別ディレクトリに保存する

インフラエンジニアの伊藤です。

MySQLのデータの格納場所は、設計段階で決めておくべきことではあると思いますが、
それでもデータが増えて別のディレクトリに移動させてなくてはならない...といったことがありますよね。

そんなときに必要な手順を紹介したいと思います!

実際の手順

なにはともあれ、まずはMySQLのプロセスを止めます。

# /etc/init.d/mysql stop

次にコンフィグファイルを設定します。

  • データの保存先
  • ソケットファイルの場所
  • クライアント側のソケットファイルの場所

この3つが設定に必要な部分です。

# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql(保存先をどこにするか)
socket=/var/lib/mysql/mysql.sock(ソケットファイルをどこにするか)

[client]
socket=/var/lib/mysql/mysql.sock

元にあったデータを動かします。

# cp -pR /var/lib/mysql/ /path/to/datadir

では、MySQLのプロセスを動かして、ログインしてみましょう。

# /etc/init.d/mysql start

# mysql -uroot -phogehoge
login to mysql prompt
Warning: Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
/etc/init.d/mysqld

get_mysql_option mysqld datadir "/var/lib/mysql"

あかんやないかい!!!

ダメな正体は起動スクリプトです。
起動スクリプト内の、MySQLのデータディレクトリの指定を変更する必要があります。

# vi /etc/init.d/mysqld

get_mysql_option mysqld datadir "/var/lib/mysql"
↓
get_mysql_option mysqld datadir "/path/to/datadir"

再度起動して、問題ないことを確認します。
あとはデータ保存先が変更されているか確認します。

mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /path/to/datadir/ |
+---------------+-------------------+
1 row in set (0.01 sec)

無事データ保存先が変更されているようですね!
めでたしめでたし。

MySQLについては他の記事も書いてますので、コチラも併せてご覧ください。

スクリプトでmysqlコマンドを実行すると「Warning: Using a password on the command line interface can be insecure」と表示される

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
5,999
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author