Почему я получаю сообщение об ошибке при запуске mysqld в virtualenv? - PullRequest
1 голос
/ 20 декабря 2011

Когда я запускаю 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

Так что же на самом деле здесь происходит?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Это не имеет ничего общего с Python и virtualenv.Ваш mysqld не настроен для правильной работы с правами обычного пользователя - его нужно вызывать, используя механизм запуска службы вашего дистрибутива (например, sudo invoke-rc.d mysql start в Ubuntu).

0 голосов
/ 20 декабря 2011

вам нужны права root:

попробуйте sudo перед командой (если ваша система поддерживает пользователей sudo http://en.wikipedia.org/wiki/Sudo)

в противном случае попробуйте сначала войти в систему как root с помощью команды su

...