源程序如下
import pymysql
connect=pymysql.Connect(
    host='localhost',
    port ='3306',
    user ='root',
    passwd='123456',
    db='18年6月数据明细',
    charset='utf8'
)
#连接游标
cursor=connect.cursor()
#sql语句
sql="select 客户明细_18年6月.客户  from  客户明细_18年6月 where 客户明细_18年6月.组别='%s'"%('B-3杨忠葵')
#执行sql语句
cursor.execute(sql)
results=cursor.fetchall()
for r in results:
    print("r")
报错内容如下
C:\Users\admin\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/admin/PycharmProjects/untitled/venv/test
Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/untitled/venv/test", line 8, in <module>
    charset='utf8'
  File "C:\Users\admin\PycharmProjects\untitled\venv\lib\site-packages\pymysql\__init__.py", line 94, in Connect
    return Connection(*args, **kwargs)
  File "C:\Users\admin\PycharmProjects\untitled\venv\lib\site-packages\pymysql\connections.py", line 327, in __init__
    self.connect()
  File "C:\Users\admin\PycharmProjects\untitled\venv\lib\site-packages\pymysql\connections.py", line 588, in connect
    self.host_info = "socket %s:%d" % (self.host, self.port)
TypeError: %d format: a number is required, not str

解决方案 »

  1.   

    试下这种方式:
    config = {
              'host':'127.0.0.1',
              'port':3306,
              'user':'root',
              'password':'xinxin2333',
              'database':'trade_ms',
              'charset':'utf8mb4',
              'cursorclass':pymysql.cursors.Cursor,
              }# 连接数据库
    connection = pymysql.connect(**config)
      

  2.   

    你好,port后面跟的是数字,你给的字符串,修改port=3306 而不是port="3306"