“Не может создать тестовый файл/var/lib/mysql/user-desktop.lower-test”: Как выполнить mysql сервер на Xubuntu 13.04 (kubuntu-рабочий-стол)

Я загрузил и распаковал MySQL 5.6.12 к /opt/mysql/server-5.6. Я хочу использовать этот дб вместо предварительно установленных 5,5 версий. Но никакая версия работы.

Когда я хочу запустить сервер с mysqld --console (предварительно установленная версия) я получаю эту ошибку:

user@user-desktop:~$ sudo mysqld --console
[sudo] password for user:
130719 19:26:17 [Warning] Can't create test file /var/lib/mysql/user-desktop.lower-test
130719 19:26:17 [Warning] Can't create test file /var/lib/mysql/user-desktop.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2)
130719 19:26:17 [ERROR] Aborting

130719 19:26:17 [Note] mysqld: Shutdown complete

Существует не любой из этих директоров в моей системе:

/var/lib/mysql/
/var/lib/mysql/
/var/lib/mysql/

Как это может быть? MySQL предварительно установлен, но директора отсутствуют. Я должен создать их вручную? Или я еще должен сделать что-то, запустить некоторую программу, для создания их? Какой режим я должен установить для них?

Существуют некоторые mysql_install_db программа в системе. Я должен выполнить его для установки MySQL?

7
задан 22 September 2014 в 21:32

1 ответ

Удостоверьтесь, что Вы установили MySQL как корень sudo apt-get install mysql-server. Это должно обычно работать.

Продолжиться от того, что Вы имеете здесь. Можно создать недостающие каталоги, но удостовериться, что они принадлежат user\group mysql: chown -R mysql:mysql /var/lib/mysql

Если требуется изменить каталог данных MySQL, сделайте так в конфигурационном файле MySQL /etc/mysql/my.cnf

Затем Вы можете, выбрал между конфигурированием apparmor для разрешения MySQL read\execute\modify новый каталог данных и подкаталоги или, в очень собственном риске, можно удалить apparmor. Вы, возможно, должны быть root сделать следующее:

/etc/init.d/apparmor stop
/etc/init.d/apparmor teardown
update-rc.d -f apparmor remove
apt-get purge apparmor
reboot

Затем можно работать mysql_install_db.

Но затем у Вас не будет пользователей в базе данных! Решить это:

mysqld --skip-grant-tables --skip-networking & #Start MySQL manually with no authentication checks
mysql # Access MySQL, no username\password needed
use mysql;
DELETE FROM user;
INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES('localhost','root',PASSWORD('root'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0'); #Add root user with passowrd, root
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
exit;
killall mysqld;
start mysql
mysql -u root -p
# Enter password, which is: root
6
ответ дан 22 September 2014 в 21:32

Другие вопросы по тегам:

Похожие вопросы: