python3のmysqlについて

windowsのパソコンから、バーチャルボックスを
使用しています。CENTOS7を使用しています。
以下のようにメインの処理からtsdbを読んでいます。
[python3 main.py]コマンドを、実行しました。

・main.py from parts import tsdb_class log = my_logging.Logger(name="learn_test") tsdb_class.data_create() print("test6") print(log) tsdb_class.DTBsTsApiGetDataWrCSV('./csv/sm_data2.csv',log) ・tsdb_class.py #!/usr/bin/python ==================== # module # --------------------------------------------------------------- import sys import pymysql.cursors #import db_cfg #from db_cfg import * import csv import gc sys.path.insert(0,'../source/parts'); from parts import my_logging # ------------------------------------------------- # Define all parameter # ------------------------------------------------- # ------------------------------------------------- # Import the stardard library # ------------------------------------------------- # Zone Class def data_create(): # データベースに接続 conn = pymysql.connect(host='localhost', user='root', password='Stay.(Me15+', db='myDB', charset='utf8') sql = '''CREATE TABLE IF NOT EXISTS ts_api_getdata ( id INT UNSIGNED NOT NULL AUTO_INCREMENT unique, sm_id INT not null, time TIMESTAMP DEFAULT CURRENT_TIMESTAMP not null, SensKind INT DEFAULT NULL, data DECIMAL(6,2) DEFAULT NULL, offset_correction_value DECIMAL(6,2) DEFAULT NULL, PRIMARY KEY (id) ) ''' with conn: with conn.cursor() as cur: cur.execute(sql) conn.commit() def DTBsTsApiGetDataWrCSV(csvpass ="",log =""): conn = pymysql.connect(host='localhost', user='root', password='Stay.(Me15+', db='myDB', charset='utf8') sql = "load data local infile '%s' into table ts_api_getdata \ fields terminated by ',' enclosed by '\"'" % (csvpass); print("test3") print(log) log.info("sql = %s" % sql) with conn: with conn.cursor() as cur: cur.execute(sql) conn.commit()

sm_data2.csvというものを、pythonからmysqlにより、データベースに
格納しようとしています。

・sm_data2.csv 100000,601,2021-03-05 16:50:00,52,463.0,514.5 100001,601,2021-03-05 17:00:00,52,472.0,523.5 100002,601,2021-03-05 17:10:00,52,488.5,540.0 100003,601,2021-03-05 17:20:00,52,459.0,510.5 100004,601,2021-03-05 17:30:00,52,425.5,477.0 100005,601,2021-03-05 17:40:00,52,396.5,448.0 100006,601,2021-03-05 17:50:00,52,420.0,471.5 100007,601,2021-03-05 18:00:00,52,429.0,480.5 100008,601,2021-03-05 18:10:00,52,469.5,521.0 100009,601,2021-03-05 18:20:00,52,464.5,516.0 100010,601,2021-03-05 18:30:00,52,460.5,512.0

実行後のsqlのログは正しい操作をしています。
下記のsqlのコマンドを、手入力する時は、うまくできます。
[LOAD DATA LOCAL INFILE '/home/todashinya/abm_process_offset_kai/source/csv/sm_data2.csv'
INTO TABLE ts_api_getdata
FIELDS TERMINATED BY ',' ENCLOSED BY '"';]
pythonのコマンドから実行すると、1148が出ます。
何か解決方法は分かりますか。

test6 <parts.my_logging.Logger object at 0x7f03d0496090> test3 <parts.my_logging.Logger object at 0x7f03d0496090> 2022-09-29 15:36:28,037 INFO learn_test: sql = load data local infile './csv/sm_data2.csv' into table ts_api_getdata fields terminated by ',' enclosed by '"' 2022-09-29 15:36:28,041 INFO learn_test: database init failed, please check init data again pymysql.err.OperationalError: (1148, 'The used command is not allowed with this MySQL version')

コメントを投稿

0 コメント