linux python连接mysql_Linux下Python连接MySQL异

家里的电脑使用Linux操作系统,最近采集的数据需要存储到MySQL,本来使用web.py的时候使用MySQL是一切正常的,结果现在直接使用MySQLdb连接数据库时异常:

/usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning: /home/huayuan/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).

warnings.warn(msg, UserWarning)

看提示应该是Linux系统权限问题,而且在XP电脑上验证过,连接MySQL的Python代码本身是没有问题的,代码如下:#coding=utf-8

import MySQLdb

try:

conn = MySQLdb.connect(host = '127.0.0.1', user = 'root', passwd = '', db = 'sys')

cur = conn.cursor()

cur.execute("insert into book(description) select 'test' from dual where not exists (select 1 from book where id = 7)")

conn.commit()

cur.close()

conn.close()

except MySQLdb.Error, e:

print 'MySQL Error: %d %s' % (e.arg[0], e.arg[1])

一开始就很容易认为是权限不足,依照提示在Linux终端将/home/huayuan/.python-eggs增加读写权限:chmod a+rw /home/huayuan/.python-eggs

结果问题依旧,后来经过反复搜索,终于找到答案,原来不是要增加权限,而是要减掉一些权限,最终有效答案如下:chmod g-wx, o-wx /home/huayuan/.python-eggs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python连接MySQL,可以使用MySQLdb模块。以下是连接MySQL的基本步骤: 1. 安装MySQLdb模块:可以使用pip安装MySQLdb模块,命令为:`pip install MySQL-python` 2. 导入MySQLdb模块:在Python程序中使用MySQLdb模块需要先导入它,命令为:`import MySQLdb` 3. 建立连接:使用MySQLdb中的connect()函数建立与MySQL连接,需要提供MySQL服务器的地址、用户名、密码等信息,示例代码如下: ``` db = MySQLdb.connect(host="localhost", user="root", password="123456", database="test") ``` 4. 创建游标对象:使用连接对象的cursor()方法创建游标对象,示例代码如下: ``` cursor = db.cursor() ``` 5. 执行SQL语句:使用游标对象的execute()方法执行SQL语句,示例代码如下: ``` sql = "SELECT * FROM students" cursor.execute(sql) ``` 6. 获取结果集:使用游标对象的fetchall()方法获取结果集,示例代码如下: ``` results = cursor.fetchall() for row in results: print(row) ``` 7. 关闭连接:使用连接对象的close()方法关闭连接,示例代码如下: ``` db.close() ``` 完整的连接MySQL的代码示例: ``` import MySQLdb # 建立连接 db = MySQLdb.connect(host="localhost", user="root", password="123456", database="test") # 创建游标对象 cursor = db.cursor() # 执行SQL语句 sql = "SELECT * FROM students" cursor.execute(sql) # 获取结果集 results = cursor.fetchall() for row in results: print(row) # 关闭连接 db.close() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值