1

当我mysqld在我的 virtualenv 中运行时,我收到一个错误并中止消息。

(nettuts)sez@sez-laptop:~/.virtualenvs$ mysqld
111220 15:22:59 [Warning] Can't create test file /var/lib/mysql/sez-laptop.lower-test
111220 15:22:59 [Warning] Can't create test file /var/lib/mysql/sez-laptop.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
111220 15:22:59 [ERROR] Aborting

111220 15:22:59 [Note] mysqld: Shutdown complete

首先我尝试安装 MySQL-python

pip install -E default/ MySQL-python

这给了我

Requirement already satisfied (use --upgrade to upgrade): '
MySQL-python in ./default/lib/python2.7/site-packages
Cleaning up...

然后当我检查它是否已安装时,它显示它没有

(nettuts)sez@sez-laptop:~/.virtualenvs$ pip freeze
Django==1.3.1
wsgiref==0.1.2

然后我决定安装它,pip install MySQL-python它安装得很好,因为它显示了

(nettuts)sez@sez-laptop:~/.virtualenvs$ pip freeze
Django==1.3.1
MySQL-python==1.2.3
wsgiref==0.1.2

如何MySQL-python在 virtualenv 中正常运行?

更新 当我运行sudo invoke-rc.d mysql start这就是我得到的

(nettuts)sez@sez-laptop:~/.virtualenvs/nettuts$ sudo invoke-rc.d mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql

然后当我按照方向运行时,start mysql这就是我得到的

(nettuts)sez@sez-laptop:~/.virtualenvs/nettuts$ sudo start mysql
start: Job is already running: mysql

那么这里到底发生了什么?

4

2 回答 2

1

它与 Python 和 virtualenv 没有任何关系。您的 mysqld 未配置为在普通用户的权限下正确运行 - 需要使用您的发行版正常服务启动机制(例如sudo invoke-rc.d mysql start在 Ubuntu 上)调用它。

于 2011-12-20T14:37:43.697 回答
0

你需要root权限:

在命令前尝试 sudo(如果您的系统支持 sudo 用户http://en.wikipedia.org/wiki/Sudo

否则尝试使用命令首先以 root 身份登录su

于 2011-12-20T15:39:40.593 回答