更新:私の会社のシステム管理者が/ tmpディレクトリを削除し、マウントされたドライブ(例:ln -s/mnt/somewhere/tmp)へのシンボリックリンクを作成しました。 MySQLは明らかにこのシンボリックリンクが嫌いでした。ローカルファイルシステム上の実際の/ tmpディレクトリが作成された後は は問題が去っていきました。Railsの移行時にMySQLの一時ファイルを書き込めません
私は、MySQLが一時ファイルを作成しようとするプロセス(rake db:migrate)を実行しています。 ただし、次のエラーが表示されている:
Mysql::Error: Can't create/write to file '/tmp/#sql_196_0.MYI' (Errcode: 13):
SHOW FIELDS FROM `user_rules`
にErrcode 13は明らかに、ファイルのアクセス許可の問題です。 プロセスを実行しているユーザーには、/ tmpディレクトリへの書き込み権限があります。 ウェブを検索したところ、問題はファイルにシャープ記号(たとえば「#」)が付いている可能性があることに言及しました。
私は/ tmpディレクトリに行き、ファイルを作成しようとしました。特定のケースで私は、ファイルを作成することはできません確かにシャープ記号が問題を引き起こしていると、それであれば、どのように問題を修正するためにMySQLやRailsのを使用することができるのであれば、私は思ったんだけど:。。
cd /tmp
echo "Hello" > #sql_123
touch #sql_123
echo "Hello" > "#sql_123"
touch "#sql_123"
(引用符なし)2番目と3番目のコマンドは、(引用符で)4番目と5番目の行が働いている。失敗している。そのため、おそらく障害があるため、シャープ記号が引用符であることや、バックスラッシュでエスケープしていないのである。しかし、再び、それは場合でも、原因、私はどのようにtを確認していないMySQLまたはRailsに対処する方法を教えてください。
アイデア?バックスラッシュや引用符でエスケープしない限り、#は、コメントを紹介しますので、あなたが引用符を必要とするシェルで
更新:私の会社のシステム管理者が/ tmpディレクトリを削除し、マウントされたドライブ(例:ln -s/mnt/somewhere/tmp)へのシンボリックリンクを作成しました()。 MySQLは明らかにこのシンボリックリンクが嫌いでした。 ローカルファイルシステム上の実際の/ tmpディレクトリが作成されると、問題は解決されました。 – Chris