“Não é possível criar o arquivo de teste /var/lib/mysql/user-desktop.lower-test”: Como executar o servidor mysql no Xubuntu 13.04 (kubuntu-desktop)

7

Eu fiz o download e descompactei o MySQL 5.6.12 para /opt/mysql/server-5.6 . Eu quero usar esse banco de dados em vez da versão 5.5 pré-instalada. Mas nenhuma das versões funciona.

Quando quero iniciar um servidor com mysqld --console (versão pré-instalada), recebo este erro:

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

Não há nenhum desses diretórios no meu sistema:

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

Como pode ser? O MySQL é pré-instalado, mas dirs estão ausentes. Devo criá-los manualmente? Ou preciso fazer outra coisa, executar algum programa para criá-los? Qual modo eu preciso definir para eles?

Existe algum programa mysql_install_db no sistema. Devo executá-lo para configurar o MySQL?

    
por Green 19.07.2013 / 18:31

1 resposta

4

Certifique-se de ter instalado o MySQL como root sudo apt-get install mysql-server . Isso geralmente deve funcionar.

Para continuar do que você tem aqui. Você pode criar os diretórios que estão faltando, mas certifique-se de que eles sejam de propriedade de user \ group mysql: chown -R mysql:mysql /var/lib/mysql

Se você quiser alterar o diretório de dados do MySQL, faça-o no arquivo de configuração do MySQL /etc/mysql/my.cnf

Então você pode escolher entre configurar apparmor para permitir que o MySQL leia \ execute \ modificar o novo diretório de dados e subdiretórios ou, por sua conta e risco, você pode remover apparmor . Talvez seja necessário que você use root para fazer o seguinte:

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

Então você pode executar mysql_install_db .

Mas você não terá usuários no banco de dados! Para resolver isso:

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
    
por Muhammad Gelbana 12.11.2013 / 20:17

Tags