簡體   English   中英

LOAD DATA LOCAL INFILE sqlalchemy和python到mysql db

[英]LOAD DATA LOCAL INFILE sqlalchemy and python to mysql db

我正在嘗試使用LOAD LOCAL DATA INFILE將批處理文件上傳到我的服務器。 我編輯了我的/etc/mysql/my.conf以在[mysql][mysqld]下包含local-infile == 1 ,但是當我運行程序時我得到了這個回溯。

相關的代碼行是:

    Traceback (most recent call last):
  File "main.py", line 48, in <module>
    con.execute(sql)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 906, in execute
    return self._execute_text(object, multiparams, params)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1054, in _execute_text
    statement, parameters
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
    context)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1332, in _handle_dbapi_exception
    exc_info
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
    context)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 442, in do_execute
    cursor.execute(statement, parameters)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/Users/eoddata/venv/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1148, 'The used command is not allowed with 
this MySQL version') [SQL: "LOAD DATA LOCAL
 INFILE 'stocks/AMEX_20150420.txt' INTO TABLE database.new_table\n                    
FIELDS TERMINATED BY ',' (Symbol,@Date,Open,High,Low,Close,Volume)\n                    
SET Date = STR_TO_DATE(@Date,'%%Y%%m%%d');"]

我從文檔中做了一些研究,但找不到修復此錯誤的方法。 使用python MySQLdb(來自pip install MySQL-Python )將允許我傳入本地infile參數。 我在SQLAlchemy中找不到相應的東西。 任何幫助表示贊賞。

編輯:我整晚都在努力,仍然沒有取得任何進展 - 很多死路一條。 有任何想法嗎?

謝謝,賈里德

您應該將local_infile=1添加到連接字符串。

SQLALCHEMY_DATABASE_URI = "mysql://user:pass@localhost/dbname?charset=utf8&local_infile=1"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM