Erro de permissões do MySQL ao mostrar bancos de dados

Erro de permissões do MySQL ao mostrar bancos de dados

Eu estava tentando instalar o homebrew e fiz isso de maneira muito estúpida:

sudo chown -R $USER /usr/local

As instruções do Homebrew dizem para fazer isso e eu não sou muito administrador de sistemas, então acreditei na palavra deles. Lição aprendida (embora eu realmente não soubesse como testar isso... parece que um script de "desfazer" seria muito valioso aqui)

De qualquer forma, o que está feito está feito, mas agora recebo este erro:

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 548
Server version: 5.1.33 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

Tentei voltar ao root sem sucesso. Alguém sabe como posso consertar isso sem reinstalar o mysql? Opcionalmente, se eu tiver que reinstalar o MySQL, como posso despejar meus bancos de dados sem acesso à linha de comando para não perder todos os meus dados?

Obrigado!

Responder1

Encontre o diretório de dados do mysql e mostre-o ao usuário do MySQL (normalmente mysql:mysql) ...

Responder2

Determine qual usuário o mysql está executando (eu usaria ps aux |grep mysql, mas seus sinalizadores para ps podem ser diferentes), descubra onde o mysql está instalado (o meu aparece nos resultados do ps como --datadir=/usr/local/mysql/data, mas você pode precisar que sua tela seja larga o suficiente para não truncar o comando) e, em seguida, altere a propriedade de volta para o usuário correto.

Responder3

$ cd /usr/lcoal/mysql/

$ ls -l

$ sudo -R chown mysql:mysql data/

data/é um diretório no /usr/local/mysql/qual contém todo o banco de dados.

Agora faça mysql -u user -p password. Você pode acessar seu banco de dados

informação relacionada