代码如下:
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "123456",
"baike_test", charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > %s" % (1000)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print("fname=%s,lname=%s,age=%s,sex=%s,income=%s" %
(fname, lname, age, sex, income))
except:
print("Error: unable to fecth data")
# 关闭数据库连接
db.close()
具体情况如下:
python aa.py
Traceback (most recent call last):
File "aa.py", line 6, in <module>
"baike_test", charset='utf8')
File "/home/lhpc04/anaconda3/lib/python3.6/site-packages/MySQLdb/__init__.py", line 85, in Connect
return Connection(*args, **kwargs)
File "/home/lhpc04/anaconda3/lib/python3.6/site-packages/MySQLdb/connections.py", line 208, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2006, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
在网上看了下,很多小伙伴都把重点放到 ‘/tmp/mysql.sock’ 文件上了,做了很多这个文件的工作。
我从新看了下,注意到是不能链接到mysql server。想到是不是域名解析的错误。
# 将其中localhost
db = MySQLdb.connect("localhost", "root", "123456",
"test", charset='utf8')
# 换为:
db = MySQLdb.connect("127.0.0.1", "root", "123456",
"test", charset='utf8')
运行正常了,希望给遇到这个小伙伴看看。