为什么我不能从aws lambda访问数据库,而可以从本地电脑上用同样的登录数据访问?
我在Amazon RDS中创建了一个新的MySQL数据库,在本地计算机上,我可以通过控制台 获得访问权限 mysql -u username -p -h test.c2nfdg67dbdpb.us-east-1.rds.amazonaws.com 现在,我尝试使用python和pymysql模块通过AWS LAMDA连接 rds_host = "test.c2nfdg67dbdpb.us-east-1.rds.amazonaws.com" name = 'username' password = 'pass' db_name = 'dbtest' conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5) 并有一个错误ERROR] 2019-11-20T14:30:05.261Z 7b1ed2e0-03ba-4c62-9525-22d845
10 2024-03-22
编程技术问答社区
使用PyMySQL,我无法连接到RDS
使用PyMySQL,我得到pymysql.err.OperationalError: (1045, u"Access denied for user 'my_user'@'' (using password: YES)"),但是,我可以使用该计算机上的相同凭据从命令行或MySQL Workbench登录.而且,我可以使用pymysql连接到localhost.这是我的示例测试代码: import pymysql prod_conn = pymysql.connect( host='correct-host-name.us-west-2.rds.amazonaws.com', user='my_user', password='correct_password', port=3306, database='my_db') 但是,使用mysql -hcorrect-host-name.us-west-2.rds.amazonaws.
44 2024-01-24
编程技术问答社区
亚马逊Linux 2 AMI上01_migrate命令失败
我有一个Django项目,该项目已部署到Amazon Linux 2 Ami上.我安装了pymysql以连接到DB,然后将这些行添加到设置中. import pymysql pymysql.version_info = (1, 4, 6, "final", 0) pymysql.install_as_MySQLdb() ,还有一个.config文件用于迁移DB; container_commands: 01_migrate: command: "django-admin.py migrate" leader_only: true option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTINGS_MODULE: mysite.settings 通常,我使用此.config文件在Linux AMI上使用mysqlclient,但它在Linux 2 AM
20 2024-01-24
编程技术问答社区
使用pymysql和xlrd加载xlsx文件到表中时,日期值不正确
(非常)初学者python用户在这里.我正在尝试使用XLRD和Pymysql Python库将XLSX文件加载到MySQL表中,我会遇到错误: pymysql.err.InternalerError:(1292,"不正确的日期值:'43500'for column'Invoice_date'in Row 1 in 1"") 我表的invoice_date数据类型是DATE.我XLSX文件上此字段的格式也是日期.如果我将表数据类型更改为VARCHAR,情况正常,但是我宁愿将数据加载到我的表中,而不是事后转换.关于为什么我会遇到这个错误有什么想法吗?看来XLRD或PymySQL正在我的XLXS文件中读取'2/4/2019',因为'43500',MySQL由于数据类型不匹配而拒绝了它. import xlrd import pymysql as MySQLdb # Open workbook and define first sheet book = xlrd.open_w
24 2023-12-20
编程技术问答社区
Flask + PyMySQL给出的错误没有属性'settimeout';
自从几天以来,我会不时在烧瓶网站上遇到此错误 [Sat Sep 14 00:04:31.016107 2019] [wsgi:error] [pid 4693:tid 140670017648384] [remote 66.249.66.44:60013] File "/var/www/xxxx/__init__.py", line 1612, in showArticleTitlePage [Sat Sep 14 00:04:31.016119 2019] [wsgi:error] [pid 4693:tid 140670017648384] [remote 66.249.66.44:60013] language = session['locale']) [Sat Sep 14 00:04:31.016130 2019] [wsgi:error] [pid 4693:tid 140670017648384] [remote 66.249.66.44:60013]
14 2023-12-15
编程技术问答社区
我可以使用pymysql.connect()的 "with "语句吗?
以下在pymysql中列出了示例: conn = pymysql.connect(...) with conn.cursor() as cursor: cursor.execute(...) ... conn.close() 我可以改用以下内容,还是会留下挥之不去的连接? (成功执行) import pymysql with pymysql.connect(...) as cursor: cursor.execute('show tables') (python 3,最新的pymysql) 解决方案 这看起来不安全,如果您看在这里/a>,__enter__和__exit__函数是with子句中所谓的.对于PymySQL连接,它们看起来像这样: def __enter__(self): """Context manager that returns a Cursor""" return self.cursor()
12 2023-12-10
编程技术问答社区
Pymysql不能连接MySQL数据库:在 "self.sock.recv_into(b) "处挂起?
当前使用Python 3.7上的MacOS 10.15上安装了MySQL 8.0.19.通过虚拟环境设置在VSCODE中开发.我也创建了PhpMyAdmin的本地数据库.无论如何,我都想与之联系.脚本: import pymysql print("Before") connection = pymysql.connect(host='localhost', user='myUserName', password='myPassword', db='db_name', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) print("After") 我运行脚本时,执行无限期地悬挂.打印"后"后,我必须退出执行.回顾为: Traceback (most recent call last): File "connect.py", line 5, in user
44 2023-11-25
编程技术问答社区
PyMySQL警告:(1366,"不正确的字符串值:'\\xF0\x9F\x98\x8D t...')
我正在尝试使用PANDAS和MYSQL将数据(推文和其他Twitter文本信息)导入数据库.我收到以下错误: 166:警告:(1366,"不正确的字符串值:'\ xf0 \ x9f \ x92 \ x9c \ x9c \ xf0 \ x9f ...'for columt 结果= self._query(query) 166:警告:(1366,"不正确的字符串值:'\ xf0 \ x9f \ x98 \ x8d t ...'对于第5行5的列'text') 结果= self._query(query) 进行了彻底的搜索后,似乎在我的数据库列设置的方式上似乎有问题.我已经尝试将数据库Charset设置为UTF8并将其整理到UTF_UNICODE_CI,但我仍然会收到相同的错误. 以下是将数据导入数据库的代码: #To create connection and write table into MySQL engine = create_engine("mysq
24 2023-11-11
编程技术问答社区
在冲突的postgres上更新多列
我必须编写查询以更新记录,如果它存在其他插入记录.我正在进行此更新/插入Postgres DB.我已经研究了UPSERT示例,其中大多数最多使用两个字段进行更新.但是,我想更新多列.示例: query="""INSERT INTO table (col1,col2,col3,col4,col5,col6,col7,col8,col9,..col20) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) ON CONFLICT(col2) DO UPDATE SET (col1,col2,col3,col4,col5,col6,col7,col8,col9,..col20) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""" 在上面的查询中,假设Col2是唯一的密钥,我正在插入和更新相同数量的列.我必须使用p
18 2023-11-09
编程技术问答社区
没有名为'pymysql'的模块;
我正在尝试在Ubuntu上使用pymysql. 我已经安装了pymysql同时使用pip和pip3,但是每次我使用import pymysql时,它都会返回ImportError: No module named 'pymysql' 我正在使用Ubuntu 15.10 64位和Python 3.5. 相同的.py在Windows上使用Python 3.5,但在Ubuntu上不起作用. 解决方案 在评论中已经回答了这一点,但是这个问题有一个答案,通过运行解决了问题: sudo apt-get install python3-pymysql 其他解决方案 使用: import pymysql 不是: import PyMySQL 对我有用. 其他解决方案 尝试了几件事,然后遇到 pymysql github P> sudo pip install PyMySQL 和导入使用: import pymysql
18 2023-11-01
编程技术问答社区
我在尝试将python与mysql链接时遇到了错误
TypeError: __init__() takes 1 positional argument but 5 were given 这是错误,我将在下面分享脚本: import pymysql print('---DATABASE CONNECTION SAMPLE---') x=pymysql.connect('localhost','root','sha@123','avodha') cr=x.cursor() cr.execute('create table student(name char(50),age int)') x.close() 解决方案 connect不接受位置参数,它进行关键字参数: x = pymysql.connect(host='localhost', user='user', password='passwd',
24 2023-10-30
编程技术问答社区
pymysql连接线程是否安全?pymysql游标线程是否安全?
我有一个队列数据结构,其中多个线程消耗项目,每个线程将使用pymysql写入数据库,在线程之间不需要其他同步. 是否可以免费使用来自所有线程中同一PymysQL连接的相同光标? 是否可以免费使用来自同一连接的每个线程使用不同的光标? (当然,在多个线程中使用多个连接是可以的,因为在这种情况下没有共享资源,我对这种情况没有兴趣) 解决方案 感谢El Ruso,要点一个方向 我在理解DBAPI2具有指示如何根据实现的情况下回答此问题的规范后,在PymySQL源中找到了答案.如果是pymysql,则意味着它不是连接或光标的线程保护. blob/master/pymysql/ init .py#l40 line pymysql是threadSafe = 1表示:线程可能共享模块,但不能共享连接. (阅读PEP-0249规格 http://legacy.python. org/dev/peps/pep-0249/#threadsafety )
16 2023-10-20
编程技术问答社区
如何在Python中用mysqldump和mysql复制一个数据库?
我正在编写一个简单的Python脚本来复制MySQL数据库.我正在尝试根据以下问题复制数据库,因此问题及其答案:" 复制/重复数据库mysqldump "," python subprocess and Mysqldump https://stackoverflow.com/questions/3600948/python-subprocess-mysqldump-and-pipes"> pypython subprocess,mysqldump and pipes "但是,由于某种原因,我的脚本不起作用,我看不到表,并且数据没有出现在我的新数据库中. . 我可以从输出中看到mysqldump正常工作(我在输出中看到了一个"垃圾箱"),所以我认为我的管道 ./p> 这是我的脚本: #!/usr/bin/env python import pymysql from subprocess import Popen, PIPE, STDOUT conn = pymysql.co
42 2023-10-04
编程技术问答社区
在python中用单反斜线替换字符串中的双反斜线
我知道该主题的变体已经在其他地方讨论过,但是其他线程都没有帮助. 我想将一根从Python移交给SQL.但是,可能会发生撇号(')出现在字符串中.我想用后斜切逃脱它们. sql = "update tf_data set authors=\'"+(', '.join(authors).replace("\'","\\\'"))+"\' where tf_data_id="+str(tf_data_id)+";" 但是,这总是在我的字符串中给出\\'.因此,后斜线本身被逃脱了,SQL语句不起作用. 有人可以帮助我或给我替代我这样做的方式吗? 谢谢 解决方案 根本不会. 也不会使SQL查询加为sql,因为这些查询易于注射SQL. 而是使用参数化查询: sql = "update tf_data set authors=%(authors)s where tf_data_id=%(data_id)s" # or :authors and :data_
20 2023-10-03
编程技术问答社区
如何防止PyMySQL转义标识符名称?
我正在使用Python 2.7 使用Pymysql,然后尝试执行以下语句: 'INSERT INTO %s (%s, %s) VALUES (%s, %s) ON DUPLICATE KEY UPDATE %s = %s' 带有以下参数: ('artikel', 'REC_ID', 'odoo_created', u'48094', '2014-12-23 10:00:00', 'odoo_modified', '2014-12-23 10:00:00') 始终导致: {programmingerror}(1064,u"您在sql语法中有错误; check 与您的MySQL Server版本相对应的手册 语法靠近" artikel"(" rec_id",'odoo_created')\ n 值('48094','2014-12-'在第1行中) 在我看来,就像pymysql在格式化过程中逃脱了所有字符串.如何防止表格和列名之类的数据库标识符?它损坏了该语句
30 2023-10-03
编程技术问答社区
如何配置PyMySQL连接SSL?
我正在尝试使用SSL与PymysQL连接数据库,但是我找不到有关语法的好文档. 这些凭据在Workbench和CLI中起作用,但是使用PymySQL时,我会遇到此错误. 无法连接到'server.domain.com'上的mySQL Server([[WinError 10061]由于目标机积极拒绝而无法建立连接)") db_conn = pymysql.connect( host=db_creds['host'], user=db_creds['user'], passwd=db_creds['passwd'], db=db_creds['db'], charset=db_creds['charset'], ssl={'ssl':{'ca': 'C:/SSL_CERTS/ca-cert.pem', 'key' : 'C:/SSL_CERTS/client-key.pem',
24 2023-09-27
编程技术问答社区
在Python中模拟一个MySQL数据库
我使用Anaconda分布中的Python 3.4.在此分布中,我找到了pymysql库可以连接到位于另一台计算机上的现有MySQL数据库. import pymysql config = { 'user': 'my_user', 'passwd': 'my_passwd', 'host': 'my_host', 'port': my_port } try: cnx = pymysql.connect(**config) except pymysql.err.OperationalError : sys.exit("Invalid Input: Wrong username/database or password") 我现在想为我的应用程序编写测试代码,在该应用程序中,我想在每个测试用例的setUp上创建一个很小的数据库,最好在内存中创建一个非常小的数据库.但是,当我用
66 2023-09-21
编程技术问答社区
PyMySQL如何防止用户被SQL注入攻击?
很抱歉在这里询问,但是我找不到有关Pymysql的安全指南的参考,我们如何防止SQL注入, 当我做php时,我知道使用MySQL准备statement(或称为参数化查询或STMT),但是我在Pymysql 中找不到有关此的参考 简单的代码使用pymysql,例如 sqls="select id from tables where name=%s" attack="jason' and 1=1" cursor.execute(sqls,attack) 我怎么知道这将防止SQL注入攻击?如果防止成功,PymySQL如何预防?cursor.ectecute默认情况下已经使用了准备好的态度? 解决方案 Python驱动程序不使用实际查询参数.在Python中,在将SQL发送到数据库服务器之前,将参数(示例中的变量attack)插入SQL字符串. 这与使用查询参数不同.在真实的参数化查询中,SQL字符串通过参数占位符完整发送到数据库服务器. 但是,python驱动
32 2023-09-21
编程技术问答社区
Flask-SQLAlchemy PyMySQL-访问被拒绝错误
OS:RHEL Python版本:3.6 SQLalchemy版本:1.1.10 PymySQL版本:0.7.11 MySQL分布:5.7.17-13 import pymysql conn = pymysql.connect(host='localhost', port=3306, user='testuser', passwd='###########', db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") print(cur.description) print() for row in cur: print(row) cur.close() conn.close() 当我尝试执行上述代码时,我会收到以下错误消息,但是我仍然可以使用命令行使用相同的帐户和密码连接到mySQL. pymysql.err.OperationalError: (1045,
42 2023-09-21
编程技术问答社区