You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在PyCharm中结合Python与SQL文件实现数据库连接?

帮你理清SQL数据库配置的问题

嘿,作为SQL新手碰到这种“文件和代码不匹配”的情况太正常了,我先帮你理清楚核心矛盾,再给你两种可行的解决方案:

先搞懂一个关键冲突

你的data.sql里的语法是MySQL专属的(比如那个/*!40100 DEFAULT CHARACTER SET latin1 */是MySQL的版本条件注释,建库写法也完全符合MySQL规范),但你拿的Python代码用的是pyodbc——这个库主要是用来连SQL Server或者微软系数据库的,两者根本不搭。所以首先得选好你要用哪种数据库:


方案1:跟着data.sql用MySQL(更省心,不用改SQL文件)

这种情况完全不需要搭SQL Server,咱们用MySQL就行,步骤超简单:

1. 先装MySQL服务器

去MySQL官网下社区版服务器(免费的),跟着安装向导走就行,记得设置好root用户的密码,别忘啦。

2. 在PyCharm里跑data.sql建库建表

  • 打开PyCharm,点右边侧边栏的Database工具(要是没显示,就去顶部菜单View > Tool Windows > Database打开它)。
  • 点左上角的+号,选MySQL,然后填连接信息:主机填localhost,端口默认3306,用户名是root,密码就是你装MySQL时设的那个,然后点Test Connection测一下能不能连上。
  • 连成功之后,右键点你的MySQL连接,选Run SQL Script,选中你的data.sql文件,点运行——这样里面的建库、建表、插数据就全搞定了!

3. 修改Python代码适配MySQL

原来的代码用的pyodbc不适合MySQL,咱们换个专门的库,先在PyCharm的Terminal里装库:

pip install mysql-connector-python

然后把代码改成这样(记得替换成你的用户名和密码):

import mysql.connector
import time

def connectToDB():
    connection = None
    while connection is None:
        try:
            # 这里替换成你的MySQL用户名、密码
            connection = mysql.connector.connect(
                host="localhost",
                user="root",
                password="你的MySQL密码",
                database="network"
            )
        except Exception as e:
            print(f"[DB connector] 连接出错啦: {e}。1秒后重试...")
            time.sleep(1)
    return connection

方案2:硬要用SQL Server(适配你给的Python代码)

如果你铁了心要用上那段pyodbc的代码,那得改data.sql的语法,还要装SQL Server,步骤如下:

1. 装SQL Server Express版(免费)

去微软官网下SQL Server Express,安装时选「混合模式认证」,给sa用户设个密码,记住它。

2. 在PyCharm里配置SQL Server并改SQL脚本

  • 打开Database工具,点+号选Microsoft SQL Server,主机填localhost\SQLEXPRESS(默认实例名),用户名sa,密码是你刚设的,测试连接。
  • data.sql改成SQL Server能认的语法,比如开头改成这样:
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'network')
BEGIN
    CREATE DATABASE network;
END
GO
USE network;
GO
-- 后面的CREATE TABLE也要改,比如MySQL的AUTO_INCREMENT要换成IDENTITY(1,1),字符集设置也不一样,得对应调整

然后运行修改后的脚本。

3. 配置ODBC数据源(让Python代码能连上)

你的Python代码里写的是DSN=data,所以得创建这个数据源:

  • 打开Windows的「ODBC数据源管理器(64位)」(因为PyCharm一般是64位的),切到「系统DSN」标签,点「添加」。
  • SQL Server Native Client,数据源名称填data,服务器选localhost\SQLEXPRESS,下一步选SQL Server认证,输入sa和密码,默认数据库选network,完成配置。
  • 回到PyCharm,确保装了pyodbc(没装的话在Terminal跑pip install pyodbc),那原来的代码就能正常用啦。

给新手的小建议

如果你完全是刚入门,强烈推荐选方案1(MySQL),因为你的data.sql已经写好MySQL语法了,不用改脚本,上手更快,学习成本也低。

内容的提问来源于stack exchange,提问作者francosy

火山引擎 最新活动