mariaDB não pode se conectar a partir do host remoto

2
MariaDB [(none)]> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | OFF   |
+-----------------+-------+
1 row in set (0.00 sec)

Quando eu tento

mysql -uroot -p -h 192.168.0.30

Eu recebi isso

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.30' (111 "Connection refused")

No arquivo

 /etc/mysql/mariadb.conf.d/50-server.cnf

Eu tenho isso:

bind-address            = 0.0.0.0
# skip-networking

Espero que você possa me ajudar.

conexão local funciona.

sudo netstat -ntlup | grep mysql
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      11580/mysqld

Eu vejo o "127.0.0.1:3306", mas não sei como posso alterá-lo.

    
por Koda 05.03.2017 / 14:32

4 respostas

0

Créditos: link

O que está desativado por padrão é o root access remoto. Se você quiser ativar isso, execute este comando SQL localmente:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

Em seguida, localize a linha a seguir e comente no arquivo my.cnf , que normalmente fica em /etc/mysql/my.cnf nos sistemas Unix / OSX. Se for um sistema Windows, você pode encontrá-lo no diretório de instalação do MySQL, geralmente algo como C:\Program Files\MySQL\MySQL Server 5.5\ e o nome do arquivo será my.ini .

Alterar linha

 bind-address = 127.0.0.1

para

 #bind-address = 127.0.0.1

E reinicie o servidor MySQL para que as alterações entrem em vigor.

    
por 05.03.2017 / 14:44
0

O processo mysqld está escutando 127.0.0.1:3306 como mostrado em netstat output. Isso explica por que você está recebendo connection refused de erro ao se conectar remotamente. É apenas aceitar conexões localmente.

Após verificar se você está alterando o arquivo de configuração correto, você precisa reiniciar o processo mysqld.

    
por 05.03.2017 / 14:36
0

O problema é a localização da sua configuração. Eu não acho que o /etc/mysql/mariadb.conf.d seja pego pelo mariadb.

A documentação deles para resolver o problema ( link ) sugere colocando seu endereço de ligação em um arquivo my.cnf:

  * /etc/my.cnf                              (*nix/BSD)
  * $MYSQL_HOME/my.cnf                       (*nix/BSD) *Most Notably /etc/mysql/my.cnf
  * SYSCONFDIR/my.cnf                        (*nix/BSD)
  * DATADIR\my.ini                           (Windows)

Eu suspeito que você possa adicionar seu bind-address config em /etc/mysql/my.cnf.local, e isso deve fazer o mariadb ouvir em 0.0.0.0.

Baseado na sua saída netstat, eu acho que seu arquivo de configuração extra simplesmente não está sendo escolhido.

    
por 17.03.2017 / 08:19
0

Eu tive o mesmo problema e consegui resolvê-lo, verificando estes aspectos:

Primeiro, acesse seu banco de dados com uma conta que aceite conexões remotas. Como mencionado em outros posts, essa conta deve ter um% no nome do servidor em vez de um host local.

Eu não sei se é uma prática segura fazer isso, mas acho que está tudo bem para começar.

Exemplo de disposição do phpmyadmin

Depois disso, você deve verificar os arquivos de configuração de

  • / etc / mysql
  • /etc/mysql/mariadb.conf.d /

Eu tive que deduzir do arquivo * /etc/mysql/my.conf porque ele inclui estas linhas

user@debian:/etc/mysql$ cat my.cnf
# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following             order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

A coisa é o segundo dir possui esses arquivos:

user@debian:/etc/mysql/mariadb.conf.d$ ls
50-client.cnf  50-mysql-clients.cnf  50-mysqld_safe.cnf  50-server.cnf

Em que logicamente, no 50-server.cnf contém as linhas referenciadas nos posts, mas não em /etc/mysql/my.cnf . Nota: A saída desses comandos foi editada para esclarecer a resposta.

Apenas comente a linha de endereçamento e conecte-se ao seu banco de dados a partir de um terminal remoto.

user@debian:/etc/mysql/mariadb.conf.d$ cat 50-server.cnf 
#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#
[server]
[mysqld]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1     

Depois disso, minha conexão remota funcionou. Espero que isso ajude.

    
por 03.04.2018 / 10:14

Tags