sql >> データベース >  >> RDS >> Mysql

エラーコード:1290。MySQLサーバーは--secure-file-privオプションを指定して実行されているため、このステートメントを実行できません。

    構成ファイルを編集する必要がない(そしてWindowsだけでなく他のオペレーティングシステムでも機能する)簡単な答えは、使用するために保存できるディレクトリを見つけることです。

    mysql> SHOW VARIABLES LIKE "secure_file_priv";
    +------------------+-----------------------+
    | Variable_name    | Value                 |
    +------------------+-----------------------+
    | secure_file_priv | /var/lib/mysql-files/ |
    +------------------+-----------------------+
    1 row in set (0.06 sec)
    

    次に、 SELECTでそのディレクトリを使用していることを確認します ステートメントのINTOOUTFILE 条項:

    SELECT *
    FROM xxxx
    WHERE XXX
    INTO OUTFILE '/var/lib/mysql-files/report.csv'
        FIELDS TERMINATED BY '#'
        ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    

    元の回答

    MySQL 5.6.25から5.6.26にアップグレードしてから、同じ問題が発生しました。

    私の場合(Windowsの場合)、MySQL56 Windowsサービスを見ると、サービスの開始時に使用されているオプション/設定ファイルが C:\ ProgramData \ MySQL \ MySQL Server 5.6 \my.ini

    Linuxでは、最も一般的な2つの場所は /etc/my.cnfです。 または/etc/mysql/my.cnf

    このファイルを開くと、 secure-file-priv [mysqld]の下にオプションが追加されました この新しいバージョンのMySQLサーバーのグループ(デフォルト値:

    secure-file-priv ="C:/ ProgramData / MySQL / MySQL Server 5.6 / Uploads"

    これにコメントするか(非本番環境にいる場合)、設定を変更してみてください(最近、 secure-file-priv ="" を設定する必要がありました) デフォルトを無効にするため)。変更を加えた後は、サービスを再起動することを忘れないでください。

    または、出力を許可されたフォルダーに保存してみることもできます(場所はインストールによって異なる場合があります):

    SELECT *
    FROM xxxx
    WHERE XXX
    INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/report.csv'
        FIELDS TERMINATED BY '#'
        ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
    

    FIELDS TERMINATED BY'、' を使用して、コンマで区切った値を使用するのが一般的です。 。例については、以下を参照してください(Linuxパスも示しています):

    SELECT *
    FROM table
    INTO OUTFILE '/var/lib/mysql-files/report.csv'
        FIELDS TERMINATED BY ',' ENCLOSED BY '"'
        ESCAPED BY ''
        LINES TERMINATED BY '\n';
    


    1. ORA-1114データパッチの実行

    2. 区切り文字列をmysqlで複数の値に変換する

    3. laraveleloquentで現在ログインしているユーザーを除くすべてのユーザーを取得します

    4. MySQLにJOIN/UNIONを使用せずにWHEREIN句から重複を返すように強制しますか?