2011-12-20 2 views
1

Когда я запускаю mysqld в моем virtualenv, я получаю сообщение об ошибке и прерывании.Почему возникает ошибка при запуске mysqld в virtualenv?

(nettuts)[email protected]:~/.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-питона с

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)[email protected]:~/.virtualenvs$ pip freeze 
Django==1.3.1 
wsgiref==0.1.2 

Затем я решил включить высокий его pip install MySQL-python и установить его просто отлично потому что показал

(nettuts)[email protected]:~/.virtualenvs$ pip freeze 
Django==1.3.1 
MySQL-python==1.2.3 
wsgiref==0.1.2 

Как я могу сделать MySQL-python запустить штраф в virtualenv?

UPDATE Когда я бегу sudo invoke-rc.d mysql start это то, что я получаю

(nettuts)[email protected]:~/.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)[email protected]:~/.virtualenvs/nettuts$ sudo start mysql 
start: Job is already running: mysql 

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

+0

туздО уже Бег. Вам больше не нужно ссылаться на него. Это то, что происходит. –

+0

@FrancisAvila прямо на. да, когда я запускаю 'ps aux | grep mysql' Я вижу '/ usr/sbin/mysqld', напечатанный в конце первой строки. –

ответ

1

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

+0

@DavidKHess Я опубликовал результаты запуска 'sudo invoke-rc.d mysql start' Не уверен, что они означают. –

0

вам нужна корневые привилегированности:

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

otherwhise попробовать looging как корень первой команды su

+0

, когда я запускаю 'sudo mysqld', мой курсор командной строки перескакивает в начало пустой строки, просто мигает там как минута или меньше, и ничего не происходит. –

+0

какой распространение вы используете? вы можете попробовать «sudo su» и после вставки пароля root. после запуска вашей команды – Stefano

+0

, может быть, поскольку, поскольку я читаю уже запущен, вы можете попробовать перезагрузить систему и войти в систему как root в системе ... – Stefano