如何使用MySQL Connector / Python + SQLAlchemy创建本地数据库连接

我正在尝试使用SQLAlchemy和MySQL Connector / Python创建本地DataBase。由于我要处理大量数据,因此...

这是我的Connection外观。...

# connect db
engine = sa.create_engine('mysql+mysqlconnector://' + MYSQL_USER + ':' + MYSQL_PASSWORD + '@' + MYSQL_HOST_IP + ':' + str(
    MYSQL_PORT) + '/' + MYSQL_DATABASE,echo=False)
engine.connect()

因为我将phpMyAdminxampp一起使用,所以我尝试将数据导入Data-Base中,但是由于我推送的数据大小太大而导致失败...

因此,我很高兴有任何人可以向我发送一份文档或教程,以简要说明如何建立此连接...

很抱歉,如果有任何事情还不够清楚。

请注意,我使用pandas + to_sql将数据从excel推送到数据库,因为我有一个以上的表,因为每个表都有5000多个行和100多个列... ..

我发现的这个错误看起来像

Traceback (most recent call last):
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\network.py",line 241,in recv_plain
    chunk = self.sock.recv(4 - packet_len)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",line 1170,in _execute_context
    context)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\default.py",line 504,in do_executemany
    cursor.executemany(statement,parameters)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\cursor.py",line 654,in executemany
    return self.execute(stmt)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\cursor.py",line 551,in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\connection.py",line 490,in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY,query))
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\connection.py",line 267,in _send_cmd
    return self._socket.recv()
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\mysql\connector\network.py",line 270,in recv_plain
    errno=2055,values=(self.get_address(),_strioerror(err)))
mysql.connector.errors.OperationalError: 2055: Lost connection to MySQL server at '127.0.0.1:3306',system error: 10053 An established connection was aborted by the software in your host machine

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:/Users/DELL/PycharmProjects/automateDB/swap.py",line 42,in <module>
    lte_details.to_sql(file_basename.lower(),con=engine,if_exists='replace',index = False)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\core\generic.py",line 2532,in to_sql
    dtype=dtype,method=method)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\io\sql.py",line 460,in to_sql
    chunksize=chunksize,dtype=dtype,line 1174,in to_sql
    table.insert(chunksize,line 686,in insert
    exec_insert(conn,keys,chunk_iter)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\io\sql.py",line 599,in _execute_insert
    conn.execute(self.table.insert(),data)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",line 948,in execute
    return meth(self,multiparams,params)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\sql\elements.py",line 269,in _execute_on_connection
    return connection._execute_clauseelement(self,params)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",line 1060,in _execute_clauseelement
    compiled_sql,distilled_params
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",line 1200,in _execute_context
    context)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",line 1413,in _handle_dbapi_exception
    exc_info
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\util\compat.py",line 203,in raise_from_cause
    reraise(type(exception),exception,tb=exc_tb,cause=cause)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\util\compat.py",line 186,in reraise
    raise value.with_traceback(tb)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\sqlalchemy\engine\base.py",_strioerror(err)))
sqlalchemy.exc.OperationalError: (mysql.connector.errors.OperationalError) 2055: Lost connection to MySQL server at '127.0.0.1:3306',system error: 10053 An established connection was aborted by the software in your host machine [SQL: 'INSERT INTO `mnm_rotterdam_5_daily_details-20191216081027` (`Date`,`eNodeB Name`,`Downlink bandwidth`,`Downlink EARFCN`,`Cell Name`,`LocalCell Id`,`Physical cell ID`,`L.RRC.ConnReq.Att`,`L.RRC.ConnReq.Succ`,`RRC Setup Success Rate(%)`,`RRC Setup Success Rate (Service:mo-Data)(%)`,`RRC Setup Success Rate (Service:mt-access)(%)`,`L.RRC.ReEstFail.Disc.FlowCtrl`,`L.RRC.SetupFail.NoReply`,`L.RRC.SetupFail.Rej`,`L.RRC.SetupFail.ResFail`,`RRC Setup Failure Num (Other Cause)`,`L.RRC.ReEst.Att`,`L.RRC.ReEst.Succ`,................'Availability_4G_Cell(%)': 100,'L.Cell.Avail.Dur(s)': 86400,'Cell Unavail Duration(s)': 0})] (Background on this error at: http://sqlalche.me/e/e3q8)

这是我的完整代码

import pandas as pd
import os
import sqlalchemy as sa
import pyodbc

# MySQL Connection
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'xxxxxxxxxxx'
MYSQL_HOST_IP = '127.0.0.1'
MYSQL_PORT = 3306
MYSQL_DATABASE = 'xlsx_test_db'

# connect db
engine = sa.create_engine('mysql+mysqlconnector://' + MYSQL_USER + ':' + MYSQL_PASSWORD + '@' + MYSQL_HOST_IP + ':' + str(
    MYSQL_PORT) + '/' + MYSQL_DATABASE,echo=False)
engine.connect()


mydir = (os.getcwd()).replace('\\','/') + '/'

lte_details = pd.read_excel(r'' + mydir + 'Mnm_Rotterdam_5_Daily_Details-20191216081027.xlsx',sheet_name='LTE Details',encoding='latin-1')


# reading and insert one file at a time
for file in os.listdir('.'):
    # only process excels files
    file_basename,extension = file.split('.')
    if extension == 'xlsx':
        lte_details.to_sql(file_basename.lower(),index = False)



print(lte_details)
chaoyangxx2003 回答:如何使用MySQL Connector / Python + SQLAlchemy创建本地数据库连接

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2866354.html

大家都在问