Python连接MySQL数据库中各种坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python连接MySQL数据库中各种坑相关的知识,希望对你有一定的参考价值。

  第一个坑

      要想连接数据库,我们必须拥有MySQL-python这个模块,首先,我在安装这个模块的时候就到了第一个大坑。

      常规安装方法:进入cmd 使用 pip install MySQL-python 就可以,如果你这样可以安装那就是万幸啊。

      第二种安装方法:进入到和常规方法一样的目录:使用easy_install MySQL-python 命令安装   ,但是我同样入坑,无法安装。

      第三种:直接在Pycharm(我用的是Pycharm)里面,进入file>settings>Project>Project InterPreter 点击右边的绿色加号,搜索MySQL-python再点击左下角的安装。 果不其然,还是入坑了。

           错误:Could not find a version that satisfies the requirement MySQLdb (from versions: ) No matching distribution found for MySQLdb

      此时内心是崩溃的,不管他,继续弄。

      第四种:进入这个网页 http://www.codegood.com/archives/129  找到 MySQL-python-1.2.3.win-amd64-py2.7.exe  进行下载。当然,这里是分32和64位的。

          下载好了,直接安装就可以了。这时,我才成功。

          注意:一定要区分位数。这也是我入过的一个坑。

      技术分享图片

  第二个坑

    从数据库查询数据,中文变问号。

      解决办法:

        第一种:在代码开头加上:# encoding=utf8 或者 # -*- coding:utf8 -* 等,这一类解决办法毫无作用。

        第二种:导入 sys模块,这个自行百度,也是毫无作用,就不多说了。

        第三种:在conn = mdb.connect(‘localhost‘, ‘用户名‘, ‘密码‘, ‘数据库名‘, 端口号, charset=‘utf8‘) 在这后面加上charset=‘utf8‘  结果一样,毫无作用,但是这一步还是必须的。

          第四种:导入json模块

              

cur.execute(select * from stuinfo)

data = cur.fetchall()
for i in data:
    print json.dumps(i, encoding=UTF-8, ensure_ascii=False)  # 这一句才是精华

            就这样,我的第二个坑才算是跳过了。

      这个坑是在我的数据库里面数据编码是utf8 的情况下发生的。

      

以上是关于Python连接MySQL数据库中各种坑的主要内容,如果未能解决你的问题,请参考以下文章

python与mysql交互中的各种坑

python连接数据库(mysqloraclesqlserver)遇到的那些坑。。。

pymysql 各种坑总结

从Oracle迁移到MySQL的各种坑及自救方案

部分代码片段

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段