本文想要总结python在操作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 –u root –p 不需要密码,
但是进入mysql之后,需要修改密码以免影响后续的操作。SET PASSWORD = PASSWORD('new password');
你可以添加bin的目录进环境变量,这样方便你在任何位置通过命令行窗口进入mysql。
我用的是Python3。(直接下载的 anacoda 3.6版本,用pycharm 做IDE,用起来蛮顺手的。anacoda包含很多python的常用包,下载anacoda安装之后就无须再下载python了。)
python3 与MySQL交互要用到pymysql模块。使用该模块之前,需要先进行安装。
说一下pycharm怎么安装模块:
新建好项目之后,通过file->settings->
找到自己的项目的project Interpreter
,点击右侧的绿色“+”号,输入模块名称,点击左下角的 install
即可安装。
安装时,我遇到HTTPERROR
的报错。尝试安装多次,总是报同样的错误。检查发现可能原因如下:
'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(二)
将总结以下两点: