MYSQL secure-file-priv가 공백으로 설정되어 있지만 DbDataReader ExecuteReader를 실행하면 공백이 아닌 것처럼 동작합니다.
P粉794851975
2023-09-02 09:46:46
<p>my.ini 파일에 secure-file-priv=""를 설정했습니다.
MySQL WorkBench에서 SQL 블록을 실행하면 완벽하게 실행됩니다. </p>
<p>그러나 C#에서 실제로 DbDataReader ExecuteReader를 실행하면 오류가 발생합니다. <strong>오류는 파일이 존재하지 않는다고 알려 주지만 이는 경로 시작 부분에 기본 경로("'C:ProgramDataMySQLMySQL Server 8.0Data")를 추가하기 때문입니다.< /strong>
(명령어 내용은 아래 SQL과 정확히 동일합니다.)</p>
<p>유효한 문자열 예</p>
<pre class="brush:php;toolbar:false;">LOAD DATA INFILE '_FILEPATH.txt_' INTO TABLE tablename 필드는 't'로 종료됩니다. 라인은 'n'으로 종료됩니다. 1라인 무시(xxx, yyy, zzz) </pre>
<p>리더 실행 후 오류가 반환되었습니다. 이제 섹션이 추가되었습니다</p>
<인용문>
<p>MySqlException: 파일 '<strong>C:ProgramDataMySQLMySQL 서버
8.0DataDBNAME</strong>_FILEPATH.txt_'를 찾을 수 없습니다(OS 오류 2 - 해당 파일이나 디렉터리 없음)</p>
</인용문>
<p>여기에<strong>"C:ProgramDataMySQLMySQL Server를 포함하고 싶지 않습니다.
8.0DataDBNAME"</strong>, 왜 이런 일이 발생하는지 이해할 수 없습니다. 도움을 주시면 대단히 감사하겠습니다!</p>
이것은 왜 이상한 일을 하는지에 대한 내 질문에 대한 대답이 아닙니다. 그러나 저는 다른 접근 방식(Load-Infile 실행)을 사용하여 문제를 해결했습니다.
dbdatareader를 사용하는 대신 MySQL 클라이언트 - MySQL 대량 로더를 사용하기로 선택했습니다
으아악그래서 여전히 내 질문에 대한 답을 알고 싶지만 이 방법이 제게는 도움이 되었습니다.