我使用crontab运行需要模块MySQLdb的python脚本.当我从命令行运行此脚本时,一切正常.但是,尝试使用crontab运行它会引发此错误.
Traceback (most recent call last):
File "clickout.py", line 3, in <module>
import MySQLdb
ImportError: No module named MySQLdb
Run Code Online (Sandbox Code Playgroud)
我做了谷歌搜索并将其添加到我的脚本顶部#!/usr/bin/python.但是,这没有做任何事情,我仍然得到同样的错误.我究竟做错了什么?
我正在尝试在运行CentOS 5.5和python 2.7的机器上安装MySQL-python.这台机器没有运行mysql服务器,这个盒子将使用的mysql实例托管在一个单独的服务器上.我有一个有效的mysql客户端.在尝试时sudo pip install MySQL-python,我得到一个错误EnvironmentError: mysql_config not found,据我所知/etc/my.cnf,这是一个只引用的命令,它也不存在.在我进行一些疯狂的追逐创建虚假的my.cnf文件之前,是否有一种简单的方法来安装MySQL-python?
我在我的Kivy应用程序上连接mysql.
import mysql.connector
con = mysql.connector.Connect(host='XXX', port=XXX, user='XXX', password='XXX', database='XXX')
cur = con.cursor()
db = cur.execute("""select SELECT SQL_NO_CACHE * from abc""")
data = cur.fetchall()
print (data)
Run Code Online (Sandbox Code Playgroud)
从另一个连接上插入或删除表abc后; 我在python上调用相同的查询; 但数据没有更新.
我添加查询"SET SESSION query_cache_type = OFF;" 在选择查询之前,但它没有用.有人说"选择NOW()......"查询不可缓存,但它不能再次运行.我该怎么办?
我想将MySQL数据库连接到我的django项目,但它抛出一个错误:
"django.core.exceptions.ImproperlyConfigured:请求设置USE_I18N,但未配置设置.您必须先定义环境变量DJANGO_SETTINGS_MODULE或在访问设置之前调用settings.configure()."
跟踪:
(myenv) LIBINGLADWINs-MacBook-Air:libinrenold$ django-admin dbshell
Traceback (most recent call last):
File "/Users/libinrenold/Desktop/djangoworks/myenv/bin/django-admin", line 11, in <module>
sys.exit(execute_from_command_line())
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 322, in execute
saved_locale = translation.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 195, in get_language
return _trans.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 59, in __getattr__
if settings.USE_I18N:
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 39, in _setup
% …Run Code Online (Sandbox Code Playgroud) 我刚刚得到一个新的macbook pro(OS X 10.8.2)并且我试图在它上面设置mysql.到目前为止,我已经能够安装它,但我无法获得root用户访问权限(或任何用户).我计划使用它Python,在我的另一台计算机上我只使用MYSQL(没有MAMP),我更喜欢保持这种方式.
作为参考,我做了以下事情:
$ alias mysql=/usr/local/mysql/bin/mysql
$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
$ alias mysqladmin=/usr/local/mysql/bin/mysqladmin
当我进入mysql或mysql -u root -p它给我这个:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
要么
ERROR 1045 (28000): Access denied for user 'jmitch'@'localhost' (using password: NO)
取决于我使用的措辞
MYSQL在我的系统首选项中运行.谢谢您的帮助.
我最近发现了Python with关键字并开始看到它的潜在用处,可以更好地处理我以前使用过try: ... finally: ...构造的一些场景.我立即决定在我编写的一些代码中尝试使用MySQLdb连接对象.
我没有理会读取Python数据库API的实现者的方式__enter__和__exit__行为,并天真地期望行为与文件对象的行为一样 - 我所期待的只是退出调用connection.close().
想象一下,在这种行为中我的困惑:
>>> with util.get_db_connection() as conn:
... print conn
...
<MySQLdb.cursors.Cursor object at 0xb6ca8b4c>
Run Code Online (Sandbox Code Playgroud)
get_db_connection()返回一个MySQLdb连接对象,但该连接对象的__enter__方法返回一个游标对象,而不是连接对象本身,就像我期望给出文件对象的方式__enter__和__exit__工作方式一样.我想我应该做with util.get_db_connection() as cursor:,或者根本不用with.
这个发现立刻让我想到了一些事情:
__enter__和__exit__MySQLdb的连接对象的方法吗?__exit__如果没有我明确要求发生这种变化,我是否会为我神奇地提交或回滚更改?还有什么不明显的我应该知道的吗?ctrl-f的最新规范(PEP 249 - Python数据库API规范v2.0)不会抛出任何东西.我正在尝试为Python安装mysqldb.我正在运行"pip install mysql-python"并且我一直收到此错误:
运行build_ext
构建'_mysql'扩展,
创建build\temp.win32-2.7
创建build\temp.win32-2.7\Release
C:\ Program Files(x86)\ Common Files\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe/c/nologo/Ox/MD/W3/GS-/DNDEBUG -Dversion_info =(1,2,5,'fi nal',1)-D__version __ = 1.2.5"-IC:\ Program Files(x86 )\ MySQL\MySQL Connector C 6.0.2\include"-Ic:\ python27\include -Ic:\ python27\PC /Tc_mysql.c/Fobui ld\temp.win32-2.7\Release_mysql.obj/Zl _mysql.c
_mysql .c(42):致命错误C1083:无法打开包含文件:'config-win.h':没有这样的文件或目录
错误:命令'C:\ Program Files(x86)\ Common Files\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe'以退出状态2失败
----------------------------------------
mysql-python构建轮
失败无法构建mysql-python
安装收集的包:mysql-python
运行mysql-python的setup.py install
命令c:\ python27\python.exe -c的完整输出"import setuptools,tokenize; file ='c:\ users\scott~1 .sco\appdata\local\temp\pip-bu ild-nja4gr\mysql-python\setup.py'; exec(compile(getattr(tokenize,'open',open)(file).read().replace('\r \n','\n'),file,'exec'))"install - -record c:\ users\scott~1.sco\appdata\local\temp\pip-5htk1y-record\install-record .txt --single-version-external-managed --compile:运行安装
运行构建
运行build_py
复制MySQLdb\release.py - > build\lib.win32-2.7\MySQLdb
运行build_ext
构建'_mysql'扩展 …
我收到错误尝试通过python 2.7 + MySQLdb 1.2.5 + sqlalchemy 1.0.9从Windows 7客户端连接到远程mysql数据库.这是最近将服务器的默认字符集更改为utf8mb4的结果.服务器正在运行MySQL 5.5.50.
我这样连接:
DB_ENGINE = sqlalchemy.create_engine("mysql+mysqldb://{user}:{pass}@{host}:{port}/{database}?charset=utf8mb4".format(**DB_SETTINGS))
Session = sqlalchemy.orm.sessionmaker(bind=DB_ENGINE)
Run Code Online (Sandbox Code Playgroud)
错误是:
File "C:\Applications\Python27\lib\site-packages\sqlalchemy\engine\default.py", line 385, in connect
return self.dbapi.connect(*cargs, **cparams)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 221, in __init__
self.set_character_set(charset)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 312, in set_character_set
super(Connection, self).set_character_set(charset)
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)")
Run Code Online (Sandbox Code Playgroud)
服务器的my.cnf包含以下内容:
init_connect = 'SET collation_connection = utf8mb4_unicode_ci'
init_connect = 'SET NAMES utf8mb4'
character-set-server …Run Code Online (Sandbox Code Playgroud) 我应该重用游标对象还是为每个查询创建一个新游标对象?
重新使用光标:
# we're going to connect to s3 and mysql
db = mysql_connect(host="localhost",
user="user",
passwd="pass",
database="db")
# Reusing the cursor
cursor = db.cursor()
# loop through all the files in the bucket one by one
for key in bucket.get_all_keys():
# the document id is the filename in the s3 bucket
doc_id = key.name.split("/")[-1]
cursor.execute("SELECT document_name FROM laws_docs WHERE id = %i", (doc_id,))
doc_name = cursor.fetchone()[0]
cursor.close()
Run Code Online (Sandbox Code Playgroud)
- 或者 -
每次新光标:
# we're going to connect to s3 and mysql …Run Code Online (Sandbox Code Playgroud) 使用 SSL 与 python 连接器打开连接会出现以下错误:
MySQLdb.connect(host='host',user='user,passwd='xxx',db='xxx',) 操作错误:(2026,'SSL 连接错误:ASN:未知密钥 OID 类型')
当我使用 bash mysql 命令时也是如此:
mysql -p -u 用户 -h 主机 输入密码: 错误 2026 (HY000):SSL 连接错误:ASN:未知密钥 OID 类型
我发现的唯一方法是使用 --ssl-mode=DISABLED
mysql -p -u 用户 -h 主机 --ssl-mode=DISABLED 输入密码: 欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。
有什么方法可以使用 python 连接器来模拟这个吗?我在 Ubuntu 16.04 和 python 3.5.2 上使用 mysql v 5.7.26。