学完python3的基础语法了,然后想进阶一下
想到了python链接数据库
先研究了下大佬的代码
import MySQLdb
try:
conn = MySQLdb.connect(
host='127.0.0.1',
user='root',
passwd='',
db='news',
port='3306',
charset='utf8'
)
except MySQLdb.Error as e:
print('Error: %s' % e)
cursor = conn.cursor()
cursor.execute('SELECT * FROM `news` WHERE 1;')
rest =cursor.fetchone()
print(rest)
跑了一下报错了,不清楚错误原因
Traceback (most recent call last):
File "D:Program FilesPython38数据库.py", line 4, in <module>
conn = MySQLdb.connect(
File "D:Program FilesPython38libsite-packagesMySQLdb__init__.py", line 130, in Connect
return Connection(*args, **kwargs)
File "D:Program FilesPython38libsite-packagesMySQLdbconnections.py", line 185, in __init__
super().__init__(*args, **kwargs2)
TypeError: an integer is required (got type str)
后来查了下原因
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。
又找了个代码
# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0003
# * Time: 下午 2:28
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
还是报错
raceback (most recent call last):
File "D:Program FilesPython38libsite-packagespymysqlconnections.py", line 569, in connect
sock = socket.create_connection(
File "D:Program FilesPython38libsocket.py", line 808, in create_connection
raise err
File "D:Program FilesPython38libsocket.py", line 796, in create_connection
sock.connect(sa)
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/Program Files/Python38/SQL测试.py", line 13, in <module>
db = pymysql.connect("localhost", "root", "root", "test")
File "D:Program FilesPython38libsite-packagespymysql__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "D:Program FilesPython38libsite-packagespymysqlconnections.py", line 327, in __init__
self.connect()
File "D:Program FilesPython38libsite-packagespymysqlconnections.py", line 619, in connect
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")
不清楚原因
然后想了一下可能是XAPMM的ip/数据库用户名/登录密码/数据库名出问题了
因为问题只可能出在XAMPP上
果然登陆密码之前就没用过,查了一下,密码为空,
所以第二个"root" 改成""就可以了
激动的心,颤动的手!!!!!
强调几点:
1.XAMPP的数据库和服务器都要打开。
2.注意python3.x和2.x链接数据库是不一样的。
3.XAMPP的root默认密码为空