在学习MySQL数据库时候,我想要通过pycharm编写代码访问虚拟机上的MySQL数据库,但是遇到了一下问题,代码如下:
import pymysql
# pycharm连接上了数据库
# db = pymysql.connect(host="10.0.2.15", port=3306, user="root", password="123456", charset="utf8")
# 参数字典
kwargs={
'host':'192.168.1.103',
"port":3306,
"user":"root",
"password":"123456",
"database":"stu",
"charset":"utf8"
}
# 连接数据库
db=pymysql.connect(**kwargs)
# 生成游标:执行sql操作数据,得到操作结果的对象
cur =db.cursor()
# 数据操作
# 关闭
cur.close()
db.close()
报错如下:
Traceback (most recent call last):
File "D:\Python\lib\site-packages\pymysql\connections.py", line 613, in connect
sock = socket.create_connection(
File "D:\Python\lib\socket.py", line 808, in create_connection
raise err
File "D:\Python\lib\socket.py", line 796, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:/month02/day10/01_write_db.py", line 21, in <module>
db=pymysql.connect(**kwargs)
File "D:\Python\lib\site-packages\pymysql\connections.py", line 353, in __init__
self.connect()
File "D:\Python\lib\site-packages\pymysql\connections.py", line 664, in connect
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '10.0.2.15' (timed out)")
随即开始找解决方法,终于找到了,我这个报错的主要原因是因为虚拟机网卡设置为NAT模式,但是想要从pycharm访问虚拟机,需设置为桥接模式。
此后,就可以在pycharm中进行添加数据库操作。
同时还要注意,这个报错还有其他原因,如虚拟机防火墙要关闭。可另外一位博主写的下文
大家也可以参考此文,也是我解决问题的想法来源;