MySQL 5.7 でデータベースのデータ保存場所を変更する方法

MySQL 5.7 でデータベースのデータ保存場所を変更する方法

MySQL データベースに保存されるデータが徐々に増加すると、元のストレージ領域がいっぱいになり、MySQL に接続できなくなります。そのため、データが保存されている場所を変更する必要があります。プロセスのいくつかの手順を以下に示します。後で確認できるようにメモしておいてください。

1. MySQLデータが保存されているディレクトリを変更する

変更する場所は 2 か所あり、そのうちの 1 つは /etc/my.cnf ファイル内の datadir を変更することです。デフォルトでは:

データディレクトリ=/var/lib/mysql

/data/ ディレクトリが比較的大きいため、次のように変更しました。

データディレクトリ=/data/mysql/

また、 /etc/init.d/mysqld init.d/mysqld ファイルを変更し、 datadir=”$result”次のように変更します。

データディレクトリ="/data/mysql"

2. MySQLサービスを停止する

サービスmysql停止

3. 新しいデータ保存ディレクトリを作成する

mkdir /data/mysql

4. データを新しいデータベースストレージディレクトリに移動する

mv /usr/local/mysql/data/* /data/mysql

少し追加の知識があります: innoDB エンジンと MyISAM エンジンのデータ ファイルは異なります。

MyISAM エンジンの場合、データ ファイルは、「/var/lib/mysql」ディレクトリの下の対応するデータベース フォルダーに、「*.frm」、「*.MYD」、および「*.MYI」の 3 つのファイルとして保存されます。これらのファイルを新しいデータ ストレージ ディレクトリに移動するだけです。

innoDB エンジンの場合、データは (通常) $innodb_data_home_dir” 的ibdata1に保存され、構造ファイルは table_name.frm に存在します。

5. MySQLデータベースディレクトリの権限と設定ファイルを変更する

chown mysql:mysql -R /data/mysql/

6. ソケットを変更する

2か所のソケットを変更します。/etc/my.cnf

ソケット=/data/mysql/mysql.sock

/var/lib/mysql/mysql.sockへの接続ファイルを作成する

sock は、mysql.sock の次の行に格納されます。

7. MySQLサービスを再起動する

埋め込む

サービスmysqlの再起動

データベースの読み書きを開始したときに、次の問題が見つかりました。

読み取りと書き込み:

エラー 1146 (42S02): テーブル ** が存在しません

テーブルを作成します。

エラー 1005 (HY000): テーブル 'runoob_tbl' を作成できません (エラー番号: 13)

解決:

/data/mysql ディレクトリで、ib_logfile* ファイルを削除して、innoDB エンジン テーブルが正常になるようにします。

再実行

mysql> テーブルを修復します ***;

大量のデータを含むテーブルの場合、このプロセスは遅くなる可能性があります。実行が完了すると、MyISAM エンジン テーブルも正常になります。

MySQL関連のトピック、必要な友人は以下を参照してください

MySQLにおけるデータベース操作知識のまとめ

MySQL 入門チュートリアル

MySQL エラーと解決策

Mysql ルートパスワード操作方法

上記は、私がご紹介したMySQL 5.7のデータベースのデータ保存場所を変更するためのソリューションです。お役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM Webサイトをご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL データベースにスクレイピー データを保存する 2 つの方法 (同期と非同期)
  • MySQL に JSON のようなデータを保存する Python の例
  • Ubuntu に MySQL 5.7 をインストールし、データ ストレージ パスを構成する方法
  • MySQLでデータベースデータ保存ディレクトリを変更する方法
  • MySQLデータストレージプロセスパラメータの詳細な例
  • Centos7でmysql5.7.19のデータ保存場所を移動する方法
  • MySQLのスイッチングデータ保存ディレクトリの実装方法
  • MySQL データベース アーキテクチャの詳細
  • MySQL 空間データストレージと関数

<<:  Dockerコンテナを使用してプロキシ転送とデータバックアップを実装する方法

>>:  vue-router を遅延ロードする 3 つの方法のまとめ

推薦する

Linux の運用と保守で netstat の代わりに ss コマンドを使用する方法

序文Linux サーバーを操作および管理するときに、最もよく使用されるコマンドの 1 つが nets...

Centos7.3は起動時に自動的に起動または指定されたコマンドを実行します

Centos7では、/etc/rc.d/rc.localファイルの権限が削減されており、実行権限があ...

MySQLウィンドウ関数の具体的な使用法

目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...

ホームページのデザインはウェブデザイナーのレベルを最もよく反映する

私がこれまで携わってきた多くのプロジェクトでは、基本的に避けられない悪循環がありました。それは、ホー...

Nodejs 配列キューと forEach アプリケーションの詳細な説明

この記事では、Nodejs 開発プロセスで遭遇する配列の特性によって発生する問題と解決策、および配列...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明

MySQLではisnull()関数をnull値の代わりとして使用することはできません。次のように:ま...

Vueブラウザが監視を再開するための具体的な手順

序文ページを共有するときに、ブラウザの戻るボタンをクリックしてプロジェクトのホームページに戻り、訪問...

指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)

mysql は期間内のすべての日付または月を取得します1: mysqlは期間内のすべての月を取得し...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

HTML で div+CSS を使用してシンプルな矢印アイコンを実装するコード

ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

JavaScript のマイクロタスクとマクロタスクの説明

序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...

nginx が複数のプロキシ層を通過して実際の送信元 IP を取得するプロセスの詳細な説明

質問Nginx は $remote_addr を実際の IP アドレスとして受け取りますが、実際には...

HTML の値属性と名前属性の機能と使用法の紹介

1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...