在python中创建一个MySQL数据库

Posted

技术标签:

【中文标题】在python中创建一个MySQL数据库【英文标题】:Create a MySQL database in python 【发布时间】:2016-02-19 11:59:36 【问题描述】:

我希望从 Python 中创建一个 mysql 数据库。我可以找到有关如何连接到现有数据库的说明,但找不到如何初始化新数据库的说明。

例如,当我运行线路时

import MySQLdb
db = MySQLdb.connect(host="localhost", user="john", passwd="megajonhy", db="jonhydb")  (presumably because connecting will not create a database if it doesn't already exist, as i had hoped)

How do I connect to a MySQL Database in Python? 上的第一行指令我收到错误 _mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")

如何初始化一个新的 MySQL 数据库以使用?

【问题讨论】:

你在本地主机上安装了 MySQL 服务器吗? 否 - 如果我从 mysql.com 安装 MySQL Community Server 上面的代码应该可以创建数据库,我会不会是正确的假设? 是的,你需要安装 mysql 服务器。您的代码不会创建数据库,它将连接到服务器并尝试连接到已在其中创建的名为jonhydb 的数据库。您可能还需要考虑安装 MySQL Workbench 来帮助您设置数据库和表 所以我大概需要先从 MySQL 服务器中创建一个具有该名称的数据库,然后从 Python 连接到它? 虽然您可以从 Python 创建它,但这并不常见,因为每次运行脚本时它都会尝试创建数据库。您需要在 MySQL(命令行或 Workbench)或 Python 中运行 create database 命令的地方 【参考方案1】:

使用 pip 安装 mysql 连接器,

sudo pip install mysql-connector-python

创建数据库 gtec 和表 student 的示例代码,

import mysql.connector    
cnx = mysql.connector.connect(user='root', password='1234',
                              host='localhost',
                              database='gtec')

try:
   cursor = cnx.cursor()
   cursor.execute("select * from student")
   result = cursor.fetchall()
   print result
finally:
    cnx.close()

【讨论】:

【参考方案2】:

在 Python 中创建数据库。

import MySQLdb

db = MySQLdb.connect(host="localhost", user="user", passwd="password")

c = db.cursor()
c.execute('create database if not exists pythontest')

db.close()

使用CREATE DATABASE MySQL 语句。

这不是常见的做法,因为它会在您每次运行脚本时尝试创建该数据库。

注意 - 然后您可以使用 db.select_db('pythontest') 选择该表并使用 c.execute('create table statement') 到 create a table

【讨论】:

以上是关于在python中创建一个MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python在mysql中创建表和导入数据

在VC中创建Mysql数据库

在 MYSQL 中创建模式 [关闭]

如何在 MySQL 中创建表别名

如何使用 PHP 在 MySQL 中创建表?

在终端中创建一个简单的mysql表格