python和mysql(一)

python和mysql

本文想要总结python在操作mysql时遇到的一些问题。
将分成几个模块总结:

  1. mysql的安装
  2. python与mysql 的交互
  3. pandas与mysql
  4. mysql时间日期的处理

1、mysql的安装


mysql官网下载: http://dev.mysql.com/downloads/mysql/
解压缩版下载:Windows (x86, 64-bit), ZIP Archive
安装步骤很简单:
以管理员身份打开命令行,进入解压缩后的bin目录,运行命令:mysqld -install 后再运行net start mysql 启动mysql服务。

F:\Develop\Mysql\mysql-5.7.23-winx64\bin>mysqld -install
Service successfully installed.

启动mysql服务时候,很可能会出现如下错误:

F:\Develop\Mysql\mysql-5.7.23-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。

这是因为,在mysql5.7以上版本中默认没有一个data目录,即没有初始化服务。需要先初始化mysql才可以启动服务。
可以先在mysql的bin目录下执行mysqld --initialize-insecure命令,
若已经执行过net start mysql,删除data文件,重新执行mysqld --initialize-insecure

登陆mysql

首次登陆:mysql –u root –p 不需要密码,但是进入mysql之后,需要修改密码以免影响后续的操作。SET PASSWORD = PASSWORD('new password');
你可以添加bin的目录进环境变量,这样方便你在任何位置通过命令行窗口进入mysql。

2、python与mysql的交互

我用的是Python3。(直接下载的 anacoda 3.6版本,用pycharm 做IDE,用起来蛮顺手的。anacoda包含很多python的常用包,下载anacoda安装之后就无须再下载python了。)
python3 与MySQL交互要用到pymysql模块。使用该模块之前,需要先进行安装。
说一下pycharm怎么安装模块:
新建好项目之后,通过file->settings->找到自己的项目的project Interpreter,点击右侧的绿色“+”号,输入模块名称,点击左下角的 install 即可安装。

python和mysql(一)_第1张图片
python和mysql(一)_第2张图片

安装时,我遇到HTTPERROR的报错。尝试安装多次,总是报同样的错误。检查发现可能原因如下:

  1. mysql正在使用。
  2. 镜像曾经被修改。
    在coda遇到'Could not connect to https://... 时,我们经常会考虑更换镜像地址。具体做法是在命令行窗口使用命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes 

此时,文件C:/users/用户名/.condarc内容也随之改变。
当多次安装pymysql 或 sqlalchemy无法成功时,考虑将文件C:/users/用户名/.condarc删除,再安装需要的包。亲测可行。

pymysql文档
python操作数据库示例:

#利用pymysql包 在'TESTDB'数据库下(先在mysql中建立该数据库。)新建表'EMPLOYEE '
#引入pymysql包
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "testpassword", "TESTDB")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""
cursor.execute(sql)
# 关闭数据库连接
db.close()

建立与数据库的连接的格式如下:

connection = pymysql.connect(host='localhost',#mysql服务器的ip,如果你安装在本地,那么就是localhost
                             user='user',#mysql用户名
                             password='passwd',#密码
                             db='db',#你要存储的数据库名
                             charset='utf8mb4',#数据编码
                             cursorclass=pymysql.cursors.DictCursor)

python和mysql(二)
将总结以下两点:

  1. pandas与mysql
  2. mysql时间日期的处理

你可能感兴趣的:(python)