标签: mysql-python

当MySQL发出警告时,如何通知sqlalchemy引发错误?

我想修改sqlalchemy设置以引发警告异常.

例如,当我在字段中插入的数据量大于定义的列长度时,mysql将截断数据,将截断的数据插入字段并发出警告.

而不是警告,我希望sqlalchemy代表mysql引发适当的错误.

python mysql warnings sqlalchemy mysql-python

8
推荐指数
1
解决办法
1916
查看次数

将MySQLdb从元组转换为Python中的字符串

我是MySQLdb的新手.我需要从存储在MySQL中的预定义数据库中读取值.我的问题是当收集值时,它们是元组格式,而不是字符串格式.所以我的问题是:有没有办法将元组转换为字符串?

以下是我的代码的详细信息

import MySQLdb

#get value from database
conn = MySQLdb.connect("localhost", "root", "123", "book")
cursor = conn.cursor()
cursor.execute("SELECT koc FROM entries")
Koc_pre = str(cursor.fetchone()) 

#create a input form by Django and assign pre-defined value
class Inp(forms.Form):
    Koc = forms.FloatField(required=True,label=mark_safe('K<sub>OC</sub> (mL/g OC)'),initial=Koc_pre) 

#write out this input form
class InputPage(webapp.RequestHandler):
    def get(self):
         html = str(Inp())
         self.response.out.write(html)
Run Code Online (Sandbox Code Playgroud)

输出采用元组格式"Koc =('5',)",但我希望"koc = 5".那么有人可以给我一些我应该检查的建议或参考书吗?

提前致谢!

django mysql-python

8
推荐指数
1
解决办法
1万
查看次数

Sqlalchemy.exc.UnboundExecutionError:无法找到在mapper上配置的绑定Mapper | SellsTable |卖方或此会话

我创建了一个用于处理的类SQLAlchemy:

class DbAbsLayer(object):
    def __init__(self):
        self.setConnectionURI();
    def setConnectionURI(self):
        self.dbDriver = "mysql";
        self.dbHostname = "localhost";
        self.dbUsername = "root";
        self.dbPassword = "123";
        self.dbName = "mydbname";
    def createSession(self):
        Session = sessionmaker();
        self.session = Session.configure();
        self.session = Session();
    def createEngine(self):
        self.setConnectionURI();
        self.engine = create_engine(self.dbDriver + "://" + self.dbUsername + ":" + self.dbPassword + "@" + self.dbHostname + "/" + self.dbName);
Run Code Online (Sandbox Code Playgroud)

然后我创建了我的表类:

class SellsTable(declarative_base()):
    __tablename__ = 'sellers'; #    
    id = Column(Integer,primary_key = True)
    name = Column(String)
    name_type = Column(Integer)
    address = Column(String)
    telephones …
Run Code Online (Sandbox Code Playgroud)

python database sqlalchemy mysql-python

8
推荐指数
1
解决办法
1万
查看次数

Python mysqldb错误关闭连接

关闭连接时遇到问题如下:

   database = 'sed_database'   
   conn = MySQLdb.Connect(host='remote_host', user='default',
                          passwd='pass', db=database)    
   try:
      try:
         cursor = conn.cursor()
         cursor.execute(sql_str)
         results = cursor.fetchall()
      except MySQLdb.Error, e:
         print "MySQL/Server Error using query: %s" % sql_str
         print "Using database: %s" % database
         raise e
   finally:
      if cursor:
         cursor.close()
      if conn:
         conn.close()
Run Code Online (Sandbox Code Playgroud)

这给出了:

 Traceback (most recent call last):
  File "trass.py", line 579, in ?
    main(sys.argv)
  File "trass.py", line 555, in main
    old_rows, changes_list = auto_analyse_test(f, args.build, args.quiet, args.debug)
  File "trass.py", line 352, in auto_analyse_test
    last_analysed_build = get_sed_baseline_ref(test_file_name, …
Run Code Online (Sandbox Code Playgroud)

python mysql python-2.4 mysql-python

8
推荐指数
1
解决办法
1327
查看次数

连接到亚马逊rds上的mysql数据库

我在Windows 7机器上使用python的MySQLdb模块,并尝试连接到Amazon RDS(SQL Server Express)上的远程数据库.这是我用来建立连接的简单连接方案,但它永远不会起作用:

import MySQLdb

cnx= {'host': 'dbname.xxxxxxxxxxxx.us-west-1.rds.amazonaws.com',
  'username': 'username',
  'password': 'password',
  'db': 'dbname'}

db = MySQLdb.connect(cnx['host'],cnx['username'],cnx['password'], cnx['db'])
Run Code Online (Sandbox Code Playgroud)

当我执行此连接脚本时,它会等待几秒钟(主要是10到15秒),然后发出以下错误:

OperationalError: (2003, "Can't connect to MySQL server on 'dbname.xxxx.us-west-1.rds.amazonaws.com' (10060)")
Run Code Online (Sandbox Code Playgroud)

我之前在localhost上使用过sql server,并且习惯使用相同的方案连接它,它始终有效.现在,这是我第一次在亚马逊rds上处理数据库,并且不知道为什么会出现这个错误.请帮忙.谢谢.

python mysql mysql-python amazon-rds

8
推荐指数
1
解决办法
1万
查看次数

pip在Mac OS X Mavericks上引发stdio.h未找到错误(10.9)

我已经尝试了无数的解决方案,似乎没有任何工作.我正在尝试安装mysql-python,但这种情况发生在numpy和其他需要gcc的包中:

building '_mysql' extension

gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -g -O2 -DNDEBUG -g -O3 -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/local/mysql/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _mysql.c -o build/temp.macosx-10.6-intel-2.7/_mysql.o -Os -g -fno-strict-aliasing -arch x86_64

In file included from _mysql.c:29:

/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:10: fatal error: 'stdio.h' file not found

#include <stdio.h>

         ^

1 error generated.

error: command 'gcc-4.2' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

指出:

我已经安装了命令行工具

从/ usr/bin/gcc添加符号链接到/usr/bin/gcc-4.2

gcc-4.2 --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

创建了一个虚拟的c文件,成功编译并运行它,所以gcc本身就没问题

$ …
Run Code Online (Sandbox Code Playgroud)

python macos gcc numpy mysql-python

8
推荐指数
2
解决办法
6052
查看次数

带有SELinux的Python MySQLdb

我在我的django应用程序中使用mySQLdb模块,该应用程序通过WSGI链接到Apache.但是我得到了许可问题(如下所示).这取决于SElinux,如果我把它设置为被动,一切都还可以.

ImproperlyConfigured:加载MySQLdb模块时出错:/opt/django/virtenv/django15/lib/python2.7/site-packages/_mysql.so:无法从共享对象映射段:权限被拒绝

什么是更新SELinux的最佳方式,包括这个,而不必关闭整个事情.错误如下所示:

ImproperlyConfigured:加载MySQLdb模块时出错:/opt/django/virtenv/django1/lib/python2.7/site-packages/_mysql.so:从共享对象映射段的结果:权限被拒绝

python django selinux mysql-python

8
推荐指数
1
解决办法
858
查看次数

如何在python中使用单个MySQL查询更新多行?

#!/usr/bin/python

# -*- coding: utf-8 -*-
import MySQLdb as mdb

con = mdb.connect('localhost', 'root', 'root', 'kuis')

with con:

    cur = con.cursor()
    cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s ",
        ("new_value" , "3"))
    print "Number of rows updated:",  cur.rowcount
Run Code Online (Sandbox Code Playgroud)


使用上面的代码,数据库kuis中表Writer的第三行值用new_value更新,输出将是Number od行更新:1
我应该如何同时更新多行?

python mysql mysql-python

8
推荐指数
2
解决办法
2万
查看次数

如何使用Conda安装MySQLdb?

我已经阅读了几个关于如何安装MySQLdb的不同解释,但我不确定哪种情况适用于我,因为我的错误信息不同.我的系统似乎无法找到MySQLdb.我安装了pymysql,但是我需要导入MySQLdb来使用该库中的程序.

谢谢你的帮助.


$ conda install MySQLdb
Run Code Online (Sandbox Code Playgroud)

获取包元数据:....错误:当前osx-64通道中找不到匹配的包:mysqldb

你的意思是其中之一吗?

pymysql
Run Code Online (Sandbox Code Playgroud)

您可以在anaconda.org上搜索此软件包

anaconda search -t conda mysqldb

$ anaconda search -t conda mysqldb
Run Code Online (Sandbox Code Playgroud)

使用anaconda-server api站点https://api.anaconda.org 运行'anaconda show'以获取更多详细信息:未找到包名称 版本| 包装类型| 平台
------------------------- | ------ | --------------- | ---------------找到0个包裹

python mysql mysql-python

8
推荐指数
3
解决办法
4万
查看次数

MySQLdb和_mysql版本不兼容:如何升级_mysql

我正在运行MySQLdb v1.2.3并收到以下错误:

LookupError: unknown encoding: utf8mb4
Run Code Online (Sandbox Code Playgroud)

这个答案建议将MySQLdb更新为1.2.5版.我更新了,现在收到此错误:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 3, 'final', 0)
Run Code Online (Sandbox Code Playgroud)

我不确定如何更新_mysql或如何更改我的设置.这只是一个python模块还是以某种方式连接到我的MySQL服务器?

编辑:我已经尝试运行以下三种方法:

sudo pip uninstall mysql-python
sudo pip install mysql-python

sudo pip uninstall mysql-python
sudo pip install mysql-python==1.2.5

sudo pip install mysql-python --upgrade
Run Code Online (Sandbox Code Playgroud)

卸载时我得到了

/usr/local/lib/python2.7/dist-packages/_mysql.so
/usr/local/lib/python2.7/dist-packages/_mysql_exceptions.py
/usr/local/lib/python2.7/dist-packages/_mysql_exceptions.pyc
Proceed (y/n)? y
Successfully uninstalled MySQL-python-1.2.3
Run Code Online (Sandbox Code Playgroud)

之后,我无法导入MySQLdb_mysql重新安装总是给我_mysql1.2.3版本.

第二个编辑/解决方案:结果_mysql安装在服务器上的两个不同位置.如上所述,卸载/安装升级_mysql到v1.2.5,但每当我导入MySQLdb优先级时,其他版本的_mysqlpip都没有被触及.

python mysql mysql-python

8
推荐指数
1
解决办法
3475
查看次数