Ubuntu Server 10.04でのMySQLデータディレクトリの変更


9

ubuntuサーバー10.04でデータディレクトリを変更しようとすると、次のエラーが発生しました。

100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

2
...そしてあなたの質問は?フォルダーのコンテンツのみを移動し、ファイルを移動しない場合、InnoDBテーブルのコンテンツはすべて失われることに注意してください。
ボビンス

質問/スプーンはありません。これはこの辺の人々にとって興味深いかもしれないと考えました。InnoDBテーブルコンテンツの良い点!

2
自分の質問で問題なく回答したいが、実際に質問して回答として回答を提供するのに時間をかけたい場合。
Zoredache

回答:


8

パーミッションに関する一般的な混乱の後、OPは問題がパーミッションとパスの権限を持っていないことではなく、AppArmorがMySQLによる新しい場所への読み取りと書き込みを妨げていることに気づきました。

これは彼の解決策です:

最初にMySQLを停止して、いじっている間、奇妙なことが起こらないようにします。

$ sudo stop mysql

次に、すべてのデータベースディレクトリを新しいホームに移動します。

$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/

ファイルを移動しないでください。それらはmysqlによって生成され、フォルダー(データベース)を移動するだけです。

次に、mysqlが新しいフォルダを使用できるようにAppArmorに丁寧に依頼します。

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
  >> add lines
     /new-mysql-dir/ r,
     /new-mysql-dir/** rwk,

次に、mysqlにdatadirが移動したことを伝えます。

$ sudo vim /etc/mysql/my.cnf 
  >> change the line
     datadir=/var/lib/mysql
  >> to
     datadir=/my-new-db-dir/

注:データベースの設定によっては、innodb-data-home-dirなども変更する必要がある場合があります。

次に、AppArmorを再起動して新しい設定を読み取ります。

$ sudo /etc/init.d/apparmor restart

そして、新しいdatadirを使用してMySQLを再起動します。

$ sudo start mysql

2
ファイルを移動する代わりに、ファイルを新しい場所にリンクすることで、データベースを稼働させ続けることができます...もちろん、2つのdatadirの場所が別々のパーティションにある場合を除きます。
cpbills

innodbを使用している場合、ディレクトリのみを移動する指示は正確ではありません。その場合は、innodbのデータファイルとログファイル(ibdata *、ib_logfile *)も移動する必要があります。
ヒレル2012年

私のように不注意な人のためのノート。AppArmor構成のパスの末尾にスラッシュを付ける/new-mysql-dir/ r必要があります。そうしないと、拒否されます。基本的なLinuxのものですが、末尾のスラッシュを正しく取得することはできません。
ジェフ

私はまだAppArmorに拒否されていました。このスレッドは、最終的なハードルを乗り越えるのに役立ちました。
ジェフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.