【问题标题】:Create a MySQL database in python在python中创建一个MySQL数据库
【发布时间】: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 命令的地方

标签: python mysql mysql-python


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多