python利用MySQLdb操作远程数据库

想实现以下流程:

MySQL Server安装在Windows机器上,在Windows机器上用虚拟机跑一个Ubuntu。然后尝试在Ubuntu上用MySQLdb连接Windows的MySQL Server。


过程并不顺利,下面一一介绍关键步骤和解决了什么问题。

1.安装MySQLdb

按照 mysqldb安装步骤 这篇文章的介绍,一步步操作,

wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

tar zxvf MySQL-python-1.2.3.tar.gz

$ cd MySQL-python-1.2.3
$ python setup.py build
$ python setup.py install

到最后发现果然出现了文中提到的 EnvironmentError: mysql_config not found错误,按照其提供的解决方法并没有找到mysql_config,发现是因为Ubuntu机器上并没有安装mysql_config,那么接下来就需要:

apt-get install libmysqlclient-dev python-dev
很简单,这一行命令安装所需要的依赖。

安装完之后,就可以用find / -name mysql_config 命令来查看mysql_config文件所在路径,并在mysqldb安装目录中找到setup_posix.py文件,将其中的mysql_config.path改成自己的路径。

这时,Ubuntu上的工作就基本完成了。


2.Mysql server 远程访问权限开启

默认下mysql是不允许远程用户访问的,因此需要在windows上进入mysql命令行:mysql -h localhost -root -p 回车输入密码即可。

进入mysql命令行后,需要创建远程用户并设置权限。

use mysql;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;
这样,已经可以用username 和 password 来访问 mysql server了。


3.数据库操作

假设mysql中已经有了数据表tb_lian1

create table tb_lian1(
id int(11) primary key,
name varchar(22) NOT NULL,
location varchar(50)
);


ubuntu上的Python连接代码:
import MySQLdb,sys

try:
    conn = MySQLdb.connect(host='XXXXX',port=3306,user='username',passwd='password',db='test')
    conn.autocommit(1)
    cur=conn.cursor()
    cur.execute("insert into tb_lian1 (id,name,location values(1,'xiaoming','China'))")
    cur.close()
    conn.close()
except Exception, e:
    print e
    sys.exit(0)
这时,已经有记录插入进表中了。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值