Estou tentando me conectar ao servidor mysql local que uso para desenvolvimento
O servidor inicia bem, mas não consigo me conectar a ele como usuário não root.
[root@somepc ]# mysql -u [someuser] -p[somepass]
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13 "Permission denied")
Como root, isso funciona como esperado. Para que o usuário tenha permissões para acessar o mysql.
mysql -u [user] -p[password]
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.30-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Quando eu verifico a permissão de como meu usuário
stat /var/lib/mysql/mysql.sock
stat: cannot stat '/var/lib/mysql/mysql.sock': Permission denied
Quais devem ser essas permissões para um usuário não root?
O problema estava relacionado ao erro nas permissões no arquivo de soquete
Como root, posso ver que as permissões no arquivo de soquete são
Então o problema é o diretório do mysql como pode ser visto acima.
Eu consertei isso dando acesso a todos. Como esta é minha máquina local usada para desenvolvimento.
Em uma máquina de produção, eu consideraria os usuários corretos para o grupo mysql.
Por favor, use o bom senso e substitua o que você precisa entre os
[]
itens acimaIsso agora funciona como esperado
Outra solução para esse problema foi não usar o soquete ao conectar.
Seu usuário precisaria ter as concessões corretas para se conectar ao servidor. Qualquer um destes poderia funcionar.
Você precisa entender as implicações de segurança do que isso faz antes de executá-lo. Permita que todos os hosts se conectem, inclua em qualquer lugar na internet.