虽然是个小问题,还是打算写一下。
python连接数据库时遇到了这样一个问题:
Traceback (most recent call last):
File "./mysql-python.py", line 5, in
conn=MySQLdb.connect(host='localhost',port='3306',user='root',passwd='a123456!')
File "/usr/lib64/python2.7/site-packages/MySQLdb/__init__.py",line 81, in Connect
return Connection(*args, **kwargs)
File"/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
TypeError: an integer is required
我想有人也遇到过,废话不多说,先看下连接数据库源码:
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import MySQLdb
conn=MySQLdb.connect(host='localhost',port='3306',user='root',passwd='a123456!')
cur = conn.cursor()
cur.execute('create database if not exists pythonDB')
# create tables
#cur.execute("create table staudent(id int,name vatchar(10)")
conn.commit()
cur.close()
conn.close()
代码很简单,就是创建一个库,但是运行后总是报上面的错误。查了半天,也不知道怎么解决。
最开始以为MySQLdb版本低了,网上找了下,版本不低。然后就找其他原因。
想了一下,既然连接不了数据库,肯定和这一句有关conn=MySQLdb.connect(host='localhost',port='3306',user='root',passwd='a123456!'),
然后就尝试修改。host,user,passwd参数是必须要的,那么port呢?然后我就删掉port, 发现问题解决了。
不过我还是没弄懂家个port,为什么数据库连接就会失败。