本文共 1514 字,大约阅读时间需要 5 分钟。
想实现以下流程:
MySQL Server安装在Windows机器上,在Windows机器上用虚拟机跑一个Ubuntu。然后尝试在Ubuntu上用MySQLdb连接Windows的MySQL Server。
过程并不顺利,下面一一介绍关键步骤和解决了什么问题。
1.安装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)这时,已经有记录插入进表中了。
转载地址:http://nbdii.baihongyu.com/