一:开发环境的配置
1:桌面环境为cnetos7+python2.7
2:MySQL的安装与配置
1)MySQL的安装
- MySQL官方文档: http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
- MySQL yum 下载:http://dev.mysql.com/downloads/repo/yum/ 或者直接用weget下载:
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
- 安装软件源:
sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
- 安装MySQL服务端
yum install -y mysql-community-server
- 启动MySQL
service mysqld start
systemctl start mysqld.service
- 检查MySQL状态
service mysqld status
systemctl status mysqld.service
这样就表示MySQL运行成功。
- 修改临时密码:
- 获取MySQL的临时密码
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。只有启动过一次mysql才可以查看临时密码
grep 'temporary password' /var/log/mysqld.log
(如果之前安装过MySQL则这里可能会有多个密码,用最后一个,注意这个密码输入时是可以粘贴的)
此密码加密过,可以复制,后面直接用
- 登陆并修改密码
mysql -uroot -p
(这是一个MySQL的以密码登录root用户的命令)
用该密码登录到服务端后,必须马上修改密码再执行一些数据库操作,不然会报如下错误:
mysql> select @@log_error; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql>
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
-
- 如果密码设置太简单出现以下的提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
呢?
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
再修改密码的长度
set global validate_password_length=1;
再次执行修改密码就可以了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
(ALTER等可以写成小写)
3:python操作MySQL数据库
- Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。
Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:
- GadFly
- mSQL
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000
- Informix
- Interbase
- Oracle
- Sybase
- 什么是MySQLdb?
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。
python2.*版本可以使用MySQLdb,不过不支持python3,python3中有一个pymysql,详细安装方法见这里
- 安装MySQL:
yum install MySQL-python
一定要注意这蛋疼的大小写
- 安装完成后,在python中
import MySQLdb
不报错就证明模块安装完成
4:数据库连接
连接数据库前,请先确认以下事项:
- 您已经创建了数据库 TESTDB.
- 在TESTDB数据库中您已经创建了表 EMPLOYEE
- EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
- 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。
- 在你的机子上已经安装了 Python MySQLdb 模块。
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() print "Database version : %s " % data # 关闭数据库连接 db.close()
执行以下脚本输出结果:
Database version : 5.0.45