質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

539閲覧

python3のmysqlについて

todasan

総合スコア78

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2022/09/29 06:56

編集2022/09/29 06:58

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')

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動作未検証ですが以下にて解消するかもしれません。

PyMysqlでLOAD DATAする

connect時に local_infile=True を指定することで、解消しました。

投稿2022/09/29 07:33

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

todasan

2022/09/29 09:14

can110 さん ありがとうございます。エラーは消えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問