ホームページ >データベース >mysql チュートリアル >ファイル権限が正しいにもかかわらず、MySQL SELECT INTO OUTFILE が Errcode 13 で失敗するのはなぜですか?
MySQL の SELECT INTO OUTFILE エラーコード 13 のトラブルシューティング: 基本権限を超えた
SELECT INTO OUTFILE
を使用して MySQL データを CSV にエクスポートすると、権限エラーである Errcode 13 によって阻止される可能性があります。通常の原因はファイルのアクセス許可が不十分であることですが、ディレクトリのアクセス許可が正しくても問題は解決しません。多くの場合、最新の Ubuntu Server バージョンにおける AppArmor のセキュリティ対策が原因です。
MySQL 権限における AppArmor の役割
Linux セキュリティ モジュールである AppArmor は、アプリケーションのシステム リソースへのアクセスを制限します。 MySQL が AppArmor プロファイルで実行されている場合 (sudo aa-status
で確認します。「強制モードのプロファイル」の下で「/usr/sbin/mysqld」を探します)、書き込みアクセスが制限されている可能性があります。
問題の解決: AppArmor へのアクセスの許可
MySQL が特定の場所に書き込めるようにするには:
AppArmor プロファイルを編集します: 編集のために /etc/apparmor.d/usr.sbin.mysqld
を開きます。
書き込み権限の追加: ターゲット ディレクトリへの読み取り/書き込みアクセスを許可する行を追加します。例:
<code>/usr/sbin/mysqld { ... /data/ r, /data/* rw, }</code>
これにより、MySQL は /data
とそのサブディレクトリに対して読み書きできるようになります。
AppArmor のリロード: sudo /etc/init.d/apparmor reload
を実行して変更を適用します。
MySQL を再起動します: MySQL サービスを再起動します。 SELECT INTO OUTFILE
コマンドを再試行してください。
重要なセキュリティ上の注意: AppArmor 経由で MySQL への書き込みアクセスを許可する場合の影響を慎重に検討してください。 セキュリティ リスクを最小限に抑えるために、絶対に必要なディレクトリへのアクセスのみを許可します。
以上がファイル権限が正しいにもかかわらず、MySQL SELECT INTO OUTFILE が Errcode 13 で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。