データベースディレクトリdatadirを変更しようとして、次の手順を実行しました。私のマシン:Ubuntu 11.10 64-bitラップトップ
インストール:
Sudo apt-get install mysql-server mysql-client
すべてOK、データベース、テーブル、すべてOKを作成できます。 datadirを変更します。
1) $ /etc/init.d/mysql stop
2) $ cp -R -p /var/lib/mysql /new_path
3) $ rm /new_path (this only remove files unnecessary)
4) $ gedit /etc/mysql/my.cnf
「datadir = var/lib/mysql」を新しいパスに変更します。
5) $ gedit /etc/apparmor.d/usr.sbin.mysqld
「/ var/lib/mysql」を「/ new_path/mysql」で新しい行に変更します
6) $ /etc/init.d/apparmor reload
7) $ /etc/init.d/mysql restart
8) $ service mysql status (is Ok)
エラーは次のとおりです。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
/ new_path/mysqlのパーミッションを変更しようとしましたが、動作しませんでした。
データベースのみをコピーしようとしました(mysql dirのすべてのファイルではありません)。それは動作しませんでした
他のフォーラムで、/ etc/apparmor.d/usr.sbin.mysqldを次のように変更する必要があることを見ました
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
「/ var/run/mysqld/mysqld」を「/ {、var /} run/mysqld/mysqld」に置き換えますが、私の場合はデフォルトで「/ {、var /} run/mysqld/mysqld」でした。
私は助けが必要です、私はこの問題で2週間があります。
ありがとう。
これが機能するためには、/ etc/apparmor.d/usr.sbin.mysqldのmysqlファイルを変更する必要がありました。シンボリックリンクは、何らかの理由で十分ではありませんでした。おそらく、リンクは、防具が実行される前に存在していなかったのでしょう。だから私は次のことをしました:
nano /etc/apparmor.d/usr.sbin.mysqld
そして変わった
#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/mysql/mysql/ r,
/mysql/mysql/** rwk,
/ mysqlは、すべてのmysqlデータリポジトリ(SSDドライブ)のマウントポイントでした。
Walliの投稿からヒントを得ました: Re:MySQL ERROR 2002(HY000):Ca n't connect to local
この問題の解決策を見つけることができたのは幸運でした。解決策を見つけるのは私にとって一夜でした。これがあなたのお役に立てば幸いです。 この問題についてmy.cnfファイルに直接メモを投稿することをお勧めします。誰に送るかわからない。
あなたはこれを行うことができます:
cd /var/lib/
tar -cf - mysql | (cd /new_path ; tar -xvf -)
(常に良いアイデアだからです)バックアップを作成します。
mv /var/lib/mysql /var/lib/mysql.old
その後、シンボリックリンク
ln -s /new_path/mysql/ /var/lib
その場合、/etc/mysql/my.cnf
に触れる必要はありません。