Python远程连接MySQL数据库

使用Python连接数据库首先需要安装Python的数据库驱动。
我的本地只装了Python,并没有装MySQL,当我使用命令:

sudo pip install mysql-python

安装驱动(也就是MySQLdb模块)的时候出现如下错误:

EnvironmentError: mysql_config not found

资料 知道是因为没有安装下面两开发包:
libmysqld-dev
libmysqlclient-dev
安装:

sudo apt install libmysqld-dev

事实上用apt安装第一个之后,第二个也已经存在了。再次尝试安装mysql-python就成功了。
现在尝试远程连接数据:

import MySQLdb

conn = MySQLdb.connect(host = '×××××××××××××',  # 远程主机的ip地址, 
                                            user = 'root',   # MySQL用户名
                                            db = 'alimusic',   # database名
                                            passwd = '××××××',   # 数据库密码
                                            port = 3306,  #数据库监听端口,默认3306
                                            charset = "utf8")  #指定utf8编码的连接
cursor = conn.cursor()  # 创建一个光标,然后通过光标执行sql语句
cursor.excute("select * from table1 limit 10")
values = cursor.fetchall()  # 取出cursor得到的数据
cursor.close(); conn.close()  #最后记得关闭光标和连接,防止数据泄露

如果excute()执行的是插入数据的代码,那么在执行完成之后需要调用

cursor.commit()

才能把结果写入数据库

中文乱码

编码错误在任何时候都必须重视的问题,由于连接数据库涉及到多个层次,比如数据库服务器编码,创建的database编码,table的编码,连接(也就是上面的conn)编码。如果出现乱码,需要检查上述的每一个环节。这里记录几个查询各种编码的方式:

  • 查询数据库的各种编码:
show variables like "%char%";
  • 查询某个数据库的默认编码
show create database databasename;
  • 查询某张表的默认编码
show create table tablename;

最好在create数据库或者表的时候在创建语句后面指定具体的编码方式:default character set utf8

参考资料

转载于:https://www.cnblogs.com/mooba/p/6484357.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值