Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MySQL连接器/Python+;炼金术_Python_Pandas_Sqlalchemy_Mysql Python_Pandas To Sql - Fatal编程技术网

如何使用MySQL连接器/Python+;炼金术

如何使用MySQL连接器/Python+;炼金术,python,pandas,sqlalchemy,mysql-python,pandas-to-sql,Python,Pandas,Sqlalchemy,Mysql Python,Pandas To Sql,我正在尝试使用SQLAlchemy和MySQL Connector/Python在本地创建一个数据库。。。。由于我有大量的数据,我想与之合作 这是我的连接看起来像 # connect db engine = sa.create_engine('mysql+mysqlconnector://' + MYSQL_USER + ':' + MYSQL_PASSWORD + '@' + MYSQL_HOST_IP + ':' + str( MYSQL_PORT) + '/' + MYSQL_DA

我正在尝试使用SQLAlchemy和MySQL Connector/Python在本地创建一个
数据库
。。。。由于我有大量的数据,我想与之合作

这是我的连接看起来像

# connect db
engine = sa.create_engine('mysql+mysqlconnector://' + MYSQL_USER + ':' + MYSQL_PASSWORD + '@' + MYSQL_HOST_IP + ':' + str(
    MYSQL_PORT) + '/' + MYSQL_DATABASE, echo=False)
engine.connect()
由于我将
phpMyAdmin
xampp
一起使用,因此我尝试将数据导入
数据库
,但失败了,因为我推送的数据太大

所以我很高兴,如果有人能给我一个文档或教程,解释如何创建这个简单的连接

如果有什么事情不够清楚,我很抱歉

请注意,我正在使用
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, method=method)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\io\sql.py", line 1174, in to_sql
    table.insert(chunksize, method=method)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\io\sql.py", 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, multiparams, 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", 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)))
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)

你能显示错误吗?@Simon Osipov check edit请我发布所有代码,错误似乎不是数据量的问题
主机上的软件中止了已建立的连接
不使用pyodbc。另请参见
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(), con=engine, if_exists='replace', index = False)



print(lte_details)