⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faq.txt

📁 python联接mysql驱动 python联接mysql驱动
💻 TXT
字号:
==================================== MySQLdb Frequently Asked Questions====================================.. contents::..Build Errors------------  ld: fatal: library -lmysqlclient_r: not foundmysqlclient_r is the thread-safe library. It's not available onall platforms, or all installations, apparently. You'll need toreconfigure site.cfg (in MySQLdb-1.2.1 and newer) to havethreadsafe = False.  mysql.h: No such file or directoryThis almost always mean you don't have development packagesinstalled. On some systems, C headers for various things (like MySQL)are distributed as a seperate package. You'll need to figure outwhat that is and install it, but often the name ends with -devel.Another possibility: Some older versions of mysql_config behave oddlyand may throw quotes around some of the path names, which confusedMySQLdb-1.2.0. 1.2.1 works around these problems. If you see thingslike -I'/usr/local/include/mysql' in your compile command, that'sprobably the issue, but it shouldn't happen any more.ImportError-----------  ImportError: No module named _mysql If you see this, it's likely you did some wrong when installingMySQLdb; re-read (or read) README. _mysql is the low-level C modulethat interfaces with the MySQL client library.Various versions of MySQLdb in the past have had build issues on"weird" platforms; "weird" in this case means "not Linux", thoughgenerally there aren't problems on Unix/POSIX platforms, includingBSDs and Mac OS X. Windows has been more problematic, in part becausethere is no `mysql_config` available in the Windows installation ofMySQL. 1.2.1 solves most, if not all, of these problems, but you willstill have to edit a configuration file so that the setup knows whereto find MySQL and what libraries to include.  ImportError: libmysqlclient_r.so.14: cannot open shared object file: No such file or directory The number after .so may vary, but this means you have a version ofMySQLdb compiled against one version of MySQL, and are now trying torun it against a different version. The shared library version tendsto change between major releases.Solution: Rebuilt MySQLdb, or get the matching version of MySQL.Another thing that can cause this: The MySQL libraries may not be onyour system path.Solutions:* set the LD_LIBRARY_PATH environment variable so that it includes  the path to the MySQL libraries.* set static=True in site.cfg for static linking* reconfigure your system so that the MySQL libraries are on the  default loader path. In Linux, you edit /etc/ld.so.conf and run  ldconfig. For Solaris, see `Linker and Libraries Guide  <http://docs.sun.com/app/docs/doc/817-3677/6mj8mbtbe?a=view>`_.  ImportError: ld.so.1: python: fatal: libmtmalloc.so.1: DF_1_NOOPEN tagged object may not be dlopen()'ed This is a weird one from Solaris. What does it mean? I have no idea.However, things like this can happen if there is some sort of a compileror environment mismatch between Python and MySQL. For example, on somecommercial systems, you might have some code compiled with their owncompiler, and other things compiled with GCC. They don't always meshtogether. One way to encounter this is by getting binary packages fromdifferent vendors.Solution: Rebuild Python or MySQL (or maybe both) from source.  ImportError: dlopen(./_mysql.so, 2): Symbol not found: _sprintf$LDBLStub   Referenced from: ./_mysql.so   Expected in: dynamic lookup This is one from Mac OS X. It seems to have been a compiler mismatch,but this time between two different versions of GCC. It seems nearlyevery major release of GCC changes the ABI in some why, so linkingcode compiled with GCC-3.3 and GCC-4.0, for example, can beproblematic.My data disappeared! (or won't go away!)----------------------------------------Starting with 1.2.0, MySQLdb disables autocommit by default, asrequired by the DB-API standard (`PEP-249`_). If you are using InnoDBtables or some other type of transactional table type, you'll needto do connection.commit() before closing the connection, or elsenone of your changes will be written to the database.Conversely, you can also use connection.rollback() to throw awayany changes you've made since the last commit.Important note: Some SQL statements -- specifically DDL statementslike CREATE TABLE -- are non-transactional, so they can't berolled back, and they cause pending transactions to commit.Other Errors------------  OperationalError: (1251, 'Client does not support authentication protocol requested by server; consider upgrading MySQL client')  This means your server and client libraries are not the same version.More specifically, it probably means you have a 4.1 or newer serverand 4.0 or older client. You can either upgrade the client side, ortry some of the workarounds in `Password Hashing as of MySQL 4.1<http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html>`_.Other Resources---------------* Help forum. Please search before posting.* `Google <http://www.google.com/>`_* READ README!* Read the User's Guide* Read `PEP-249`_.. _`PEP-249`: http://www.python.org/peps/pep-0249.html

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -