반응형
pymysql을 사용하여 MySQL에 데이터 파일을 로드할 수 없음 - 파일을 찾을 수 없음
구분된 파일을 MariaDB 데이터베이스에 로드하려고 하는데 다음 오류가 계속 발생합니다.
pymysql.err.작동 오류: (1017, "'b'/tmp/altered' 파일을 찾을 수 없습니다.txt ''")"
'b'는 어디에서 오는 것입니까?
MariaDB 프롬프트에서 LOAD DATA 명령을 실행하면 정상적으로 작동합니다.
내 코드는 다음과 같습니다.
print("Prepare to import file")
cnopts=pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection("8.8.8.8", username="osuser", password="ospassword", cnopts=cnopts) as sftp:
with sftp.cd("/tmp"):
sftp.put("C:/mydirectory/altered.txt")
db = pymysql.connect("8.8.8.8", "dbuser", "dbpassword", "database", local_infile=True)
cursor = db.cursor()
print("importing file")
cursor.execute('LOAD DATA LOCAL INFILE "/tmp/altered.txt" INTO TABLE daily FIELDS TERMINATED BY "|" LINES STARTING BY "148521" TERMINATED BY "\n" ')
db.commit()
cursor.close()
LOAD DATA LOCAL INFile은 클라이언트(원격) 컴퓨터에 있는 파일에 대한 것입니다.
LOAD DATA LOCAL INFILE을 사용하면 파일을 sftp할 필요가 없습니다.
print("Prepare to import file")
db = pymysql.connect("serverIP", "user", "password", "database", local_infile=True)
cursor = db.cursor()
print("importing file")
load_sql = "LOAD DATA LOCAL INFILE 'C:/directory/file.txt' INTO TABLE table FIELDS TERMINATED BY '|' LINES STARTING BY '11111' TERMINATED BY '\n';"
print("SQL Statement loaded")
cursor.execute(load_sql)
db.commit()
cursor.close()
언급URL : https://stackoverflow.com/questions/65327709/unable-to-load-data-file-into-mysql-using-pymysql-cant-find-file
반응형
'programing' 카테고리의 다른 글
MariaDB의 동적 피벗 테이블이 php에서 작동하지 않는 쿼리 (0) | 2023.08.06 |
---|---|
Spring Boot API 게이트웨이에서 이름을 확인할 수 없습니다. (0) | 2023.08.06 |
Xcode 6에서 "일치하는 서명 자산을 찾거나 생성하지 못했습니다." 오류가 발생하는 이유는 무엇입니까? (0) | 2023.08.06 |
Python에서 파일 또는 디렉토리를 재귀적으로 복사 (0) | 2023.07.17 |
파이썬 유닛 테스트에서 setUp()와 setUpClass()의 차이점은 무엇입니까? (0) | 2023.07.17 |