mysql连接

5hcedyr0  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(282)

我还是个新手。
我可以用ssh凭据连接到我的远程数据库,但是。。。
希望防止此错误发生在正在刮取的每个项目上。
错误:2055:在“127.0.0.1:3306”处与mysql服务器失去连接,系统错误:10053已建立的连接被主机中的软件中止
下面是我的mysql管道对象

  1. import mysql.connector
  2. import sshtunnel
  3. class MySQLStorePipeline(object):
  4. def __init__(self):
  5. with sshtunnel.SSHTunnelForwarder(
  6. ('13.***.***.***', 22),
  7. ssh_username='***',
  8. ssh_password='***',
  9. remote_bind_address=('db1.prod.***.***.net.***', 3306),
  10. local_bind_address=('127.0.0.1', 3306)
  11. ) as tunnel:
  12. self.dbcon = mysql.connector.connect(
  13. host='127.0.0.1',
  14. port=3306,
  15. user='***',
  16. database='***',
  17. password='***',
  18. charset='utf8'
  19. )
  20. self.cursor = self.dbcon.cursor()
  21. def process_item(self, item, spider):
  22. try:
  23. tables = self.cursor.execute('SHOW TABLES')
  24. print tables.fetchall()
  25. self.dbcon.commit()
  26. except mysql.connector.Error as err:
  27. print('Error: {}'.format(err))
  28. return item

我只是不知道如何在process\u item函数中维护数据库连接

vd8tlhqk

vd8tlhqk1#

你用的是 with ... 这就是为什么python的ssh隧道会自动关闭的原因

相关问题