Lesley19 / TagaDay

1 stars 0 forks source link

数据库开发记录 #2

Open NBR-hugh opened 7 years ago

NBR-hugh commented 7 years ago

本次项目选取SAE为服务器,mySQL为服务器,web.py 为web框架。

参考资料如下:

python 操作MySQL数据库 | 菜鸟教程

简单而直接的Python web 框架:web.py - 开源中国社区

云应用 SAE - 云服务 - 云托管 - 新浪云

使用python一步一步搭建微信公众平台(五)----使用mysql服务来记录用户的反馈 - kevin的个人页面

Ch7 Py103微信群答疑(阿里云、有道云、SAE部署坑总结) · Issue #279 · AIMinder/Py103

NBR-hugh commented 7 years ago

基本离了一下思路,大致方向如下:

NBR-hugh commented 7 years ago

1.安装MySQLdb模块

http://stackoverflow.com/a/19769044/7560477 安装mysql,并连接到python,MySQLdb模块运行成功。

2.MySQL使用

MySQL Tutorial - Learn MySQL Fast, Easy and Fun.

在google搜得这个教程,开始学习。这是windows平台针对GUI操作的教程,资料查找错误。

创建数据库主要参照Create MySQLdb database using Python script - Stack Overflow

踩的坑:

keng1

Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2) - Stack Overflow

keng2

mysql - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) - Stack Overflow

这个问题一直无法排除,脑袋又陷入死循环,重新进行梳理。

using password: YES 这里的判断是是否有输入密码,而非对密码正误的判断。

根据这个问题:

MySQL ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES) - Stack Overflow

You probably have an anonymous user ''@'localhost' or ''@'127.0.0.1'. The recommended solution is to drop this anonymous user (this is usually a good thing to do anyways). 取消这样的匿名用户?如何去掉? 不如试着新建一个用户名

CREATE USER nbr IDENTIFIED BY 'password';

重建后依然不行,再观察发现自己命令输错,输错多了用户名就无效了,回到root用户名创建数据库就可以。需要在root用户名下,即管理员权限中对新的用户名进行授权,新的用户名才可以对数据库进行操作

根据一下资料,重新熟悉用户名添加删除,创建数据库,授权,更新的操作命令: Mysql 创建、删除用户 - fly1988happy - 博客园

nibirongdeMacBook-Pro:TagaDay NBR-hugh$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15

mysql> drop user nbr;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER nbr IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye
nibirongdeMacBook-Pro:TagaDay NBR-hugh$ mysql -u nbr -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16

mysql> exit
Bye

nibirongdeMacBook-Pro:TagaDay NBR-hugh$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17

mysql> grant all privileges on testDB.* to nbr@localhost identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
NBR-hugh commented 7 years ago

3.python脚本连接mysql数据库

再运行python脚本测试,成功建立数据库链接,执行sql操作。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

class MySQLdb_operation(object):

    def __init__(self):
        pass

    def Creat_table(self):
        # 建立数据库连接
        db = MySQLdb.connect(host="localhost",user="nbr",passwd="1234",db="testDB")
        # 使用cursor()方法获取操作游标 
        cursor = db.cursor()
        # 使用execute方法执行SQL语句
        cursor.execute("SELECT VERSION()")
        # 使用 fetchone() 方法获取一条数据库。
        data = cursor.fetchone()
        print "Database version : %s " % data
        # 关闭数据库连接
        db.close()

if __name__ == '__main__':

    Op = MySQLdb_operation()
    Op.Creat_table()
nibirongdeMacBook-Pro:TagaDay NBR-hugh$ python demo.py
Database version : 5.7.17