I am utilizing the 'Talipp' library in Python to compute diverse moving averages, such as ALMA, DEMA, EMA, HMA, KAMA, SMA, SMMA, T3, TEMA, WMA, and ZLEMA. Subsequently, I aim to store these calculated values in a MySQL database with columns 'name', 'date', 'open', 'high', 'low', 'close', and 'volume'. However, I am encountering an error during this process. I am unable to connect Python with SQL .
Here is my code
from talipp.ohlcv import OHLCVfrom talipp.indicators import ALMA, DEMA, EMA, HMA, KAMA, SMA, SMMA, T3, TEMA, WMA, ZLEMAimport pymysqlimport pandas as pdfrom sqlalchemy import create_engine# MySQL connection detailshost = 'localhost'user = 'root'password = 'Namit@99'database = 'new_minute'# Function to update data in the databasedef update_database(): # Create a SQLAlchemy engine engine = create_engine(f'mysql+pymysql://{user}:{password}@{host}:{port}/{database}') # Connect to the MySQL database conn = pymysql.connect(host=host, user=user, password=password, database=database) # Write SQL query to fetch data query = 'SELECT * FROM minute' # Read the SQL query result into a DataFrame using the engine price = pd.read_sql(query, engine) # Create OHLCV data ohlcv_data = OHLCV( price['open'].tolist(), price['high'].tolist(), price['low'].tolist(), price['close'].tolist(), price['volume'].tolist() ) # Calculate indicator values alma_period = 1 alma_offset = 0.85 alma_sigma = 6 alma_values = ALMA(period=alma_period, offset=alma_offset, sigma=alma_sigma, input_values=ohlcv_data.close) dema_period = 1 dema_values = DEMA(period=dema_period, input_values=ohlcv_data.close) ema_period = 1 ema_values = EMA(period=ema_period, input_values=ohlcv_data.close) hma_period = 2 hma_values = HMA(period=hma_period, input_values=ohlcv_data.close) kama_period = 4 fast_period = 2 slow_period = 30 kama_values = KAMA(period=kama_period, fast_ema_constant_period=fast_period, slow_ema_constant_period=slow_period, input_values=ohlcv_data.close) sma_period = 1 sma_values = SMA(period=sma_period, input_values=ohlcv_data.close) smma_period = 1 smma_values = SMMA(period=smma_period, input_values=ohlcv_data.close) t3_period = 1 t3_factor = 0.7 t3_values = T3(period=t3_period, factor=t3_factor, input_values=ohlcv_data.close) tema_period = 1 tema_values = TEMA(period=tema_period, input_values=ohlcv_data.close) wma_period = 1 wma_values = WMA(period=wma_period, input_values=ohlcv_data.close) zlema_period = 1 zlema_values = ZLEMA(period=zlema_period, input_values=ohlcv_data.close) # Store the calculated indicator values in the database cursor = conn.cursor() for index, row in price.iterrows(): # Update the row in the database table cursor.execute(''' UPDATE minute SET alma=%s, dema=%s, ema=%s, hma=%s, kama=%s, sma=%s, smma=%s, t3=%s, tema=%s, wma=%s, zlema=%s WHERE id=%s''', (alma_values[index], dema_values[index], ema_values[index], hma_values[index], kama_values[index], sma_values[index], smma_values[index], t3_values[index], wma_values[index], zlema_values[index], row['id']) conn.commit() conn.close()if __name__ == '__main__': update_database()Error which I am facing
Traceback (most recent call last): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pymysql\connections.py", line 644, in connect sock = socket.create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python312\Lib\socket.py", line 828, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python312\Lib\socket.py", line 963, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^socket.gaierror: [Errno 11003] getaddrinfo failedDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 145, in __init__ self._dbapi_connection = engine.raw_connection() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 3292, in raw_connection return self.pool.connect() ^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 452, in connect return _ConnectionFairy._checkout(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 1269, in _checkout fairy = _ConnectionRecord.checkout(pool) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 716, in checkout rec = pool._do_get() ^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\impl.py", line 169, in _do_get with util.safe_reraise(): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__ raise exc_value.with_traceback(exc_tb) File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\impl.py", line 167, in _do_get return self._create_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 393, in _create_connection return _ConnectionRecord(self) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 678, in __init__ self.__connect() File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 902, in __connect with util.safe_reraise(): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__ raise exc_value.with_traceback(exc_tb) File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 898, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\create.py", line 637, in connect return dialect.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\default.py", line 616, in connect return self.loaded_dbapi.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pymysql\connections.py", line 358, in __init__ self.connect() File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pymysql\connections.py", line 711, in connect raise excpymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '99@localhost' ([Errno 11003] getaddrinfo failed)")The above exception was the direct cause of the following exception:Traceback (most recent call last): File "c:\Users\Namit Dubey\Desktop\Talipp\Taldb.py", line 91, in <module> update_database() File "c:\Users\Namit Dubey\Desktop\Talipp\Taldb.py", line 25, in update_database price = pd.read_sql(query, engine) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pandas\io\sql.py", line 652, in read_sql with pandasSQL_builder(con) as pandas_sql: ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pandas\io\sql.py", line 851, in pandasSQL_builder return SQLDatabase(con, schema, need_transaction) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pandas\io\sql.py", line 1576, in __init__ con = self.exit_stack.enter_context(con.connect()) ^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 3268, in connect return self._connection_cls(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 147, in __init__ Connection._handle_dbapi_exception_noconnection( File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 2430, in _handle_dbapi_exception_noconnection raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 145, in __init__ self._dbapi_connection = engine.raw_connection() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\base.py", line 3292, in raw_connection return self.pool.connect() ^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 452, in connect return _ConnectionFairy._checkout(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 1269, in _checkout fairy = _ConnectionRecord.checkout(pool) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 716, in checkout rec = pool._do_get() ^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\impl.py", line 169, in _do_get with util.safe_reraise(): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__ raise exc_value.with_traceback(exc_tb) File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\impl.py", line 167, in _do_get return self._create_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 393, in _create_connection return _ConnectionRecord(self) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 678, in __init__ self.__connect() File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 902, in __connect with util.safe_reraise(): File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__ raise exc_value.with_traceback(exc_tb) File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\pool\base.py", line 898, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\create.py", line 637, in connect return dialect.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\sqlalchemy\engine\default.py", line 616, in connect return self.loaded_dbapi.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pymysql\connections.py", line 358, in __init__ self.connect() File "C:\Users\Namit Dubey\AppData\Roaming\Python\Python312\site-packages\pymysql\connections.py", line 711, in connect raise exc sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '99@localhost' ([Errno 11003] getaddrinfo failed)")(Background on this error at: https://sqlalche.me/e/20/e3q8)