conn.query(q) File "/Users/ljy/anaconda3/lib/python3.10/site-packages/pymysql/connections.py", line 548, in query self._execute_command(COMMAND.COM_QUERY, sql) File "/Users/ljy/anaconda3/lib/python3.10/site-packages/pymysql/connections.py", li
时间: 2023-06-28 14:15:21 浏览: 162
这个错误是因为`pymysql`连接库在执行`query`方法时发生了异常,可能是由于SQL语句格式不正确或者连接池中没有可用的连接等问题导致的。
可以尝试打印出具体的`q`语句,检查是否存在语法错误或者拼写错误。另外,可以使用`try...except`语句来捕获异常并进行相应的处理,例如重新从连接池中获取一个新的连接等。
下面是一个示例代码,可以作为参考:
```python
import pymysql
from dbutils.pooled_db import PooledDB
pool = PooledDB(
creator=pymysql, # 使用pymysql作为连接库
maxconnections=5, # 连接池最大连接数
mincached=2, # 初始化时,连接池中至少创建的空闲连接,0表示不创建
maxcached=5, # 连接池中最多闲置的连接,0表示不限制
maxshared=0, # 连接池中最多共享的连接数量,0表示全共享
blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待
maxusage=None, # 一个连接最多被重复使用多少次,None表示不限制
setsession=[], # 连接建立后需要执行的命令列表
ping=0, # ping MySQL服务器检查是否服务可用,0表示不检查,1表示检查
host='127.0.0.1',
port=3306,
user='root',
password='root',
database='test'
)
conn = pool.connection() # 从连接池中获取一个连接
cursor = conn.cursor()
try:
q = "select * from `table` where `id` = 1;"
cursor.execute(q)
results = cursor.fetchall()
print(results)
except Exception as e:
print(e)
conn = pool.connection() # 重新从连接池中获取一个连接
cursor = conn.cursor()
cursor.close()
conn.close()
```
希望能帮到你!
阅读全文