Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

problema mysql e ubuntu 18

Eu instalei o mysql seguindo um tutorial seguindo os comandos:

sudo apt-get mysql-server

sudo mysql_secure_instalation ->(caso contrario nao define senha e impede o acesso).

e para acessar o mysql: sudo mysql -u root -p

ai q vem a questão ele pede primeiro a senha do root depois a senha do mysql , entao entra. Mas se eu nao colocar o sudo nao consigo acessar mesmo digitando a senha do mysql

o problema é q mesmo fornecendo a senha do mysql no parametro do node ele nao conegue acessar e a pagina nao carrega o banco (nao aparece nenhuma msgm de erro). Eu acho que isso tem haver com a questão do sudo mas não achei nada na internet especificando isso.

module.exports = function(app){
  app.get('/produtos',function(req,res){
      var mysql = require('mysql');
      var connection = mysql.createConnection({
        host : 'localhost',
        user : 'root',
        password : 'senha',
        database : 'casaDoCodigo'
      });
      connection.query('select * from livros',function(err,results){
          res.send(results);
      });
      connection.end();
  });
}
2 respostas

é.. parece que para acessar o seu banco você precisar estar como super usuário... acho que a primeira alternativa seria desinstalar e instalar ele através do usuário normal. Caso não queira, talvez você tenha que rodar sua aplicação como sudo também.

solução!

Bom depois de pesquisar sobre permissões do MySQL eu achei uma solução! Criei um novo usuário mysql com acesso ao banco. Pra quem estiver com o mesmo problema eu fiz o seguinte:

logue normalmente com sudo -u root -p dentro do mysql vc vai criar outro usuário:

  CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'password';

E agora vc da os privilégios sobre o banco que deseja usar ou se quiser pode dar a todos os bancos:

GRANT ALL PRIVILEGES ON banco_de_dados.* TO 'usuario'@'localhost';

pronto agora quando quiser logar com esse usuário nao precisa do sudo!

mysql -u 'usuario' -p