python利用MySQLdb操作远程数据库

来源:互联网 发布:半自动咖啡机 知乎 编辑:程序博客网 时间:2024/04/30 09:30

想实现以下流程:

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.gztar 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,systry:    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)
这时,已经有记录插入进表中了。















0 0