MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLデータディレクトリをUbuntu16.04の別の場所に変更する方法


この記事では、MySQLデータディレクトリを変更する方法、またはMySQLデータベースデータを新しい場所に再配置する方法を学習します。この状況は、データベースの成長が非常に速い場合、またはセキュリティ上の理由からデータディレクトリを移動する場合に使用できます。新しい場所に移動します。

前提条件

  • Sudo権限を持つroot以外のユーザーがいるUbuntuマシン。
  • MySQLがインストールされて機能しています。
  • データベースデータの場所を移動する新しいボリュームまたは場所。data_volはマシンまたはサーバーに接続された新しいボリュームであるため、新しい場所は/ mnt / data_vol/MySQLになります。

MySQLデータフォルダの場所の変更

先に進む前に、まずデータディレクトリの現在の場所を見つけます

 $ mysql –u root –pOutput:パスワードを入力してください:MySQLモニターへようこそ。コマンドは;で終わりますまたは\g.MySQL接続IDは472Serverバージョン:5.6.30-0ubuntu0.14.04.1(Ubuntu)Copyright(c)2000、2016、Oracleおよび/またはその関連会社。 Oracleは、OracleCorporationおよび/またはその関連会社の登録商標です。その他の名前は、それぞれの所有者の商標である可能性があります。「help;」と入力します。または「\h」でヘルプを表示します。 '\ c'と入力して、現在の入力ステートメントをクリアします。mysql> 

MySQLのrootパスワードの入力を求められたら、パスワードを入力してください。以下のコマンドを実行して、MySQLの現在の作業データディレクトリを確認します。

 MySQL> select @@ datadir; Output:+ ----------------- + | @@ datadir | + ----------------- + | / var / lib / mysql / | + ----------------- + 1行セット(0.00秒)

出力には、MySQLデータベースがデータディレクトリとしてデフォルトフォルダとして/ var / lib/MySQLを使用していることが示されます。最初に何かを変更する前に、データの整合性をチェックし、MySQLを停止してステータスをチェックします

 $ sudo systemctl stop mysql 

systemctlはservicesコマンドに対して何も表示しないため

 $ sudo systemctl status mysqlOutput:mysql.service-ロード済み:MySQL Community Serverロード済み:ロード済み(/lib/systemd/system/mysql.service;有効;ベンダープリセット:有効)アクティブ:非アクティブ(デッド)2016-09-月以降12 13:57:43 IST; 1秒前プロセス:17669 ExecStartPost =/ usr / share / mysql / mysql-systemd-start post(code =exited、status =0 / SUCCESS)プロセス:17668 ExecStart =/ usr / sbin / mysqld(code =exited、status =0 / SUCCESS)プロセス:17664 ExecStartPre =/ usr / share / mysql / mysql-systemd-start pre(code =exited、status =0 / SUCCESS)メインPID:17668(code =exited、status =0 / SUCCESS)Sep 12 13 :55:14 ubuntu-16 systemd [1]:MySQLCommunityServerを起動しています...9月12日13:55:15ubuntu-16systemd [1]:MySQLCommunityServerを起動しました。9月12日13:57:40ubuntu-16systemd [1]:MySQLCommunityServerを停止しています...9月12日13:57:43ubuntu-16systemd [1]:MySQLCommunityServerを停止しました。

MySQLが停止していることを確認したら、データを新しい場所に移動します。データを移動するには、Rsyncを–データファイルの権限を保持するオプションと–vを使用して詳細出力を表示します。

以下は、データを新しい場所に移動するための完全なコマンドです–

 $ rsync –av / var / lib / mysql/mnt/data_vol/OutPut:sendingインクリメンタルファイルlistmysql/mysql / auto.cnfmysql / debian-5.7.flagmysql / ib_buffer_poolmysql / ib_logfile0mysql / ib_logfile1mysql / ibdata1mysql / mysql / mysql / mysql /columns_priv.MYDmysql/mysql/columns_priv.MYImysql/mysql/columns_priv.frmmysql/mysql/db.MYDmysql/mysql/db.MYImysql/mysql/db.frmmysql/mysql/db.opt….mysql/sys/x@0024user_summary。 frmmysql / sys / x @ 0024user_summary_by_file_io.frmmysql / sys / x @ 0024user_summary_by_file_io_type.frmmysql / sys / x @ 0024user_summary_by_stages.frmmysql / sys / x @ 0024user_summary_by_statement_latency.frmmysql / sys / x @ 0024user_summary_ sys / x @ 0024wait_classes_global_by_latency.frmmysql / sys / x @ 0024waits_by_host_by_latency.frmmysqlsys // x @ 0024waits_by_user_by_latency.frmmysql / sys / x @ 0024waits_global_by_latency.frmsent 199,384,083 bytes receive 6,858 bytes 132,927 

rsyncの後、データフォルダを新しい場所に正常に移動します。セキュリティ上の理由から、データが新しい場所にあることを確認するまでデータフォルダを保持し、現在のデータディレクトリの名前を/ var / lib/mysqlから/var/ lib/mysql_backupに変更します。以下は、現在のデータディレクトリを変更するコマンドです。

以下は、現在のデータディレクトリを変更するコマンドです–

 $ sudo mv / var / lib / mysql / var / lib / mysql_backup 

ここで、デフォルトのデータディレクトリを変更します。変更する方法はたくさんありますが、/ etc / mysql / mysql.conf.d/mysqld.cnfにあるmysqld.cnfファイルを編集します。

mysqld.cnfを編集するには、以下のコマンドを使用します

 $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnfOutput:[mysqld_safe] socket =/var/run/mysqld/mysqld.socknice =0 [mysqld] ## *基本設定#user =mysqlpid -ファイル=/var/run/mysqld/mysqld.pidsocket=/var/run/mysqld/mysqld.sockport =3306basedir =/ usrdatadir =/ mnt / data_vol / mysql / tmpdir =/ tmplc-messages-dir =/ usr / share / mysqlskip-external-locking 

Apparmorエイリアス設定の変更

また、/ etc / apparmor.d / tunables / alias

を編集する必要がありました

ファイルの下部で、エイリアスルールに次の行を追加する必要がありました。

 $ sudo vi /etc/apparmor.d/tunables/aliasOutput:# -------------------------------- ---------------------------------- ## Copyright(C)2010 CanonicalLtd.##このプログラムは無料ですソフトウェア; FreeSoftwareFoundationによって公開されているGNUGeneralPublic#Licenseのバージョン2の条件の下で、再配布および/または変更することができます。## ------------------ ------------------------------------------------#エイリアスルールはパスの書き換えに使用でき、variable#の解決後に実行されます。たとえば、「/ usr」がリムーバブルメディア上にある場合:#alias / usr /-> / mnt / usr /、##またはmysqlデータベースが/ home:#alias / var / lib /mysql/に保存されている場合->/ home / mysql /、alias / var / lib / mysql /-> / mnt / data_vol / mysql 

ファイルを編集したら、apparmorを再起動する必要があります。

以下は、apparmorを再起動するコマンドです。

デフォルトのデータディレクトリを変更したため、以下のコマンドを実行する必要がありました。これにより、スクリプト環境を渡すための最小限のディレクトリフォルダ構造が作成されます。

$ sudo mkdir / var / lib / mysql / mysql –p

次に、mysqlサービスを再起動します。

 $ sudo systemctl start mysql 

次に、以下のコマンドを使用してMySQLサービスのステータスを確認します

 $ sudo systemctl status mysqlOutput:mysql.service-MySQL Community Server Loaded:loaded(/lib/systemd/system/mysql.service; enabled; vendorプリセット:enabled)Active:active(running)from Mon 2016-09- 12 14:17:27 IST; 23秒前プロセス:18481 ExecStartPost =/ usr / share / mysql / mysql-systemd-start post(code =exited、status =0 / SUCC Process:18477 ExecStartPre =/ usr / share / mysql / mysql-systemd-start pre(code =exited、status =0 / SUCCESメインPID:18480(mysqld)タスク:28(制限:512)メモリ:137.3M CPU:329msCGroup:/system.slice/mysql.service└─18480/ usr / sbin / mysqldSep 12 14 :17:26 ubuntu-16 systemd [1]:MySQLCommunityServerを起動しています...9月12日14:17:27ubuntu-16systemd [1]:MySQLCommunityServerを起動しました。

新しいデータディレクトリが変更されていることを確認するには、次のコマンドを実行します

 $ mysql -uroot -pOutput:パスワードを入力してください:MySQLモニターへようこそ。コマンドは;で終わりますまたは\g.MySQL接続IDは3Serverバージョン:5.7.13-0ubuntu0.16.04.2(Ubuntu)Copyright(c)2000、2016、Oracleおよび/またはその関連会社。 Oracleは、OracleCorporationおよび/またはその関連会社の登録商標です。その他の名前は、それぞれの所有者の商標である可能性があります。「help;」と入力します。または「\h」でヘルプを表示します。 '\ c'と入力して、現在の入力ステートメントをクリアします。mysql> select @@ datadir + ---------------------- + | @@ datadir | + ---------------------- + | / mnt / data_vol / mysql / | + ----------------- + 1行セット(0.00秒)mysql> 

データディレクトリが変更されたことを確認したら、デフォルトのデータディレクトリを削除します。これは/ var / lib / mysql_backupにあり、古いデータベースディレクトリを削除するコマンドです。

 $ sudo rm –rf / var / lib / mysql_backup 

上記の構成と手順では、MySQLデータディレクトリを新しい場所に再配置することを学びました。これにより、より多くのデータを別の場所に保護または保存することができます。


  1. Windows 10 でデフォルトのインストール ディレクトリを変更する方法

    新しいプログラムまたはアプリケーションをインストールすると、システム アーキテクチャまたはインストールするプログラムに応じて、既定で C:\Program Files または C:\Program Files (x86) ディレクトリにインストールされます。ただし、ディスク容量が不足している場合は、プログラムのデフォルトのインストール ディレクトリを別のドライブに変更できます。新しいプログラムをインストールするときに、ディレクトリを変更するオプションを提供するプログラムはほとんどありませんが、このオプションは表示されないため、デフォルトのインストール ディレクトリを変更することが重要です。

  2. 高度なフィルタを適用して Excel の別の場所にコピーする方法

    高度なフィルタ は、Excel の最も便利で有利な機能の 1 つで、フィルターを適用して、または適用せずに、ある範囲のセルをある場所から別の場所にコピーするためにかなり頻繁に使用されます。この記事では、Excel の Advanced Filter を使用できることを紹介します。 段階的な分析を通じて、セルの範囲を別の場所にコピーします。 Excel アドバンスト フィルタの概要 高度なフィルタ データで利用できるツールです [並べ替えとフィルター] というセクションの下の Excel のタブ . 合計 3 適用できます Excel の任意のデータ セットに対する操作。 ある場所か