python能远程连接MySQL数据库吗

 我来答
从空去听8
2017-07-23 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5509万
展开全部
使用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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式