0

テーブルにアップロードする必要のあるデータがテキストファイルにあります。Python 3のスクリプトで、mysql.connector(https://launchpad.net/myconnpy)を使用してDBに接続し、コマンドを実行します。過去にmysql.connectorを問題なく使用できましたが、ファイルをテーブルにアップロードするコマンドを使用する際に問題が発生しています。私のコードは次のとおりです。

def TableUpload(con2):   
cur = con2.cursor()##Connect to destination server with table
res_file = 'extend2'   
cur.execute("TRUNCATE TABLE data.results")## Clear table before writing
cur.execute("LOAD DATA LOCAL INFILE './extend2' INTO TABLE data.results FIELDS TERMINATED BY ','")

コードはテーブルをクリアし、テキストファイルからテーブルにデータをアップロードしようとします。テーブルは正常にクリアされますが、テーブルの入力中に次のエラーが生成されます。

Traceback (most recent call last):
File "cl3.py", line 575, in <module>
TableUpload(con2)
File "cl3.py", line 547, in TableUpload
cur.execute("LOAD DATA LOCAL INFILE './extend2' INTO TABLE kakrana_data.mir_page_results FIELDS TERMINATED BY ','")
File "/usr/local/lib/python3.2/site-packages/mysql/connector/cursor.py", line 333, in execute
res = self.db().protocol.cmd_query(stmt)
File "/usr/local/lib/python3.2/site-packages/mysql/connector/protocol.py", line 137, in deco
return func(*args, **kwargs)
File "/usr/local/lib/python3.2/site-packages/mysql/connector/protocol.py", line 495, in cmd_query
return self.handle_cmd_result(self.conn.recv())
File "/usr/local/lib/python3.2/site-packages/mysql/connector/connection.py", line 180, in recv_plain
errors.raise_error(buf)
File "/usr/local/lib/python3.2/site-packages/mysql/connector/errors.py", line 84, in raise_error
raise get_mysql_exception(errno,errmsg)
mysql.connector.errors.NotSupportedError: 1148: The used command is not allowed with this MySQL version

ターミナルから直接ファイルをアップロードするコマンドを使用すると、うまく機能しません。コマンドがスクリプトから機能していないだけです。エラーは、コマンドがターミナルから機能するにもかかわらず、mysqlバージョンでは許可されていないことを示しています。ローカルファイルからテーブルへのデータアップロードを実現するために、私が犯している間違いや別の方法を提案してください。

4

0 に答える 0