Estou ciente deste comando:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Mas só me permite conceder um endereço IP específico para acessar esse banco de dados MySQL remoto. E se eu quiser, para que qualquer host remoto possa acessar esse banco de dados MySQL? Como faço isso? Basicamente, estou tornando esse banco de dados público para que todos possam acessá-lo.
Respostas:
% é um curinga - você também pode fazer
'%.domain.com'
ou'%.123.123.123'
e coisas assim, se precisar.fonte
-h my_machine_name
parâmetro Isso engana o cliente para identificá-lo como'user'@my_machine_name.example.com
, e não'user'@localhost
. Dessa forma, você não precisa criar e manter contas e concessões duplas paralocalhost
acesso a ambos e à rede. E, claro, não se esqueçamysqld
é obrigado a0.0.0.0
vs.127.0.0.1
.Ativar acesso remoto (Grant) Início / Tutoriais / Mysql / Ativar acesso remoto (Grant) Se você tentar se conectar ao servidor mysql a partir de uma máquina remota, e encontrar um erro como o descrito abaixo, este artigo é para você.
Alterar configuração do mysql
Comece com a edição do arquivo de configuração do mysql
Comente as seguintes linhas.
Se você não encontrar a linha de ignorar rede, adicione-a e comente-a.
Reinicie o servidor mysql.
Alterar privilégio GRANT
Você pode se surpreender ao ver, mesmo após as alterações acima, que você não está obtendo acesso remoto ou acesso, mas não é capaz de todos os bancos de dados.
Por padrão, o nome de usuário e a senha do mysql que você está usando têm permissão para acessar o servidor mysql localmente. Então, precisa atualizar privilégios.
Execute um comando como abaixo para acessar de todas as máquinas. (Substitua
USERNAME
ePASSWORD
por suas credenciais.)Execute um comando como abaixo para dar acesso a um IP específico. (Substitua
USERNAME
ePASSWORD
por suas credenciais.)Você pode substituir o 1.2.3.4 pelo seu IP. Você pode executar o comando acima várias vezes para conceder acesso a partir de vários IPs.
Você também pode especificar um
USERNAME
&PASSWORD
para acesso remoto.Você pode verificar o resultado final:
Por fim, também pode ser necessário executar:
Conexão de teste
Do terminal / linha de comando:
Se você obtiver um shell mysql, não se esqueça de executar os bancos de dados show; para verificar se você possui privilégios corretos em máquinas remotas.
Dica de bônus: revogar acesso
Se você acidentalmente conceder acesso a um usuário, é melhor ter a opção de revogação à mão.
A seguir, revogará todas as opções para USERNAME de todas as máquinas:
Se você vir o privilégio USAGE após executar o comando REVOKE, tudo bem. É tão bom quanto nenhum privilégio. Não tenho certeza se pode ser revogado.
fonte
/etc/mysql/mysql.conf.d/mysqld.cnf
arquivo em vez de/etc/mysql/my.cnf
comentar abind-address
parte. A#skip-networking
linha está ausente e não deve haver efeito de adicionar e comentar a linha./etc/mysql/mariadb.conf.d/50-server.cnf
3306
ou a porta que você configurouAssumindo que a etapa acima foi concluída e a porta 3306 do MySql esteja livre para ser acessada remotamente; Não se esqueça de vincular o endereço IP público no arquivo de configuração do mysql.
Por exemplo, no meu servidor ubuntu:
No arquivo, procure o bloco de seção [mysqld] e adicione o novo endereço de ligação, neste exemplo é 192.168.0.116. Seria algo como isto
você pode remover a ligação localhost (127.0.0.1) se desejar, mas precisará fornecer um endereço IP especificamente para acessar o servidor na máquina local.
Então o último passo é reiniciar o servidor MySql (no ubuntu)
ou
#/etc/init.d/mysql restart
para outros sistemasAgora, o banco de dados MySQL pode ser acessado remotamente por:
fonte
/etc/init.d/mysql reload
deveria bastar #bind-address
diretiva determina o endereço IP em que o servidor mysql escuta; não os endereços IP dos quais o servidor aceita conexões.bind-address
o localhost ou o endereço remotehost.mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Para quem se atrapalhou com isso, aqui está como consegui conceder os privilégios, espero que ajude alguém
Como observado,
%
é um curinga e isso permitirá que qualquer endereço IP se conecte ao seu banco de dados. A suposição que faço aqui é que, quando você se conectar, terá um usuário chamadoroot
(que é o padrão). Alimente a senha root e você estará pronto. Observe que não tenho aspas simples ('
) ao redor da raiz do usuário.fonte
As alterações no arquivo de configuração são necessárias para ativar as conexões via host local.
Para conectar-se através de IPs remotos, entre como um usuário "root" e execute as consultas abaixo no mysql.
Isso criará um novo usuário acessível no host local e também nos IPs remotos.
Comente também a linha abaixo do seu arquivo my.cnf localizado em /etc/mysql/my.cnf
Reinicie seu mysql usando
Agora você deve conseguir se conectar remotamente ao seu mysql.
fonte
Use este comando:
Então:
Em seguida, comente a linha abaixo no arquivo "/etc/mysql/mysql.conf.d/mysqld.cnf" (é necessário!):
Funciona para mim!
fonte
your-password-does-not-satisfy-the-current-policy-requirements
Para poder se conectar com seu usuário a partir de qualquer endereço IP, faça o seguinte:
Permita que o servidor mysql aceite conexões remotas. Para este arquivo mysqld.conf aberto:
Procure a linha que começa com "endereço de ligação" e defina seu valor como 0.0.0.0
e, finalmente, salve o arquivo.
Nota: Se você estiver executando o MySQL 8+, a
bind-address
diretiva não estará nomysqld.cnf
arquivo por padrão. Nesse caso, adicione a diretiva na parte inferior do arquivo/etc/mysql/mysql.conf.d/mysqld.cnf
.Agora reinicie o servidor mysql, com
systemd
ou use oservice
comando mais antigo . Isso depende do seu sistema operacional:Finalmente, o servidor mysql agora pode aceitar conexões remotas.
Agora precisamos criar um usuário e conceder permissão, para que possamos logar com esse usuário remotamente.
Conecte-se ao banco de dados MySQL como root ou qualquer outro usuário com privilégio de root.
agora crie o usuário desejado no localhost e no curinga '%' e conceda permissões em todos os bancos de dados como tal.
Então,
E, finalmente, não se esqueça de liberar privilégios
Nota: Se você configurou um firewall no servidor de banco de dados, também será necessário abrir a porta
3306
padrão do MySQL para permitir o tráfego no MySQL.Espero que isto ajude ;)
fonte
Execute o seguinte:
Em seguida, tente uma conexão a partir do endereço IP especificado:
Você deve conseguir se conectar.
fonte
Você pode reduzir o problema do MariaDB através deste comando :
Nota:
%
é um curinga. Nesse caso, refere-se a todos os endereços IP.fonte
fonte
Para acessar remotamente o servidor Mysql do banco de dados 8:
fonte
Se você estiver executando a instância do EC2, não se esqueça de adicionar as regras de entrada no grupo de segurança com o MYSQL / Aurura.
fonte
Editar arquivo:
/etc/mysql/percona-server.cnf
Anexe o código abaixo no arquivo.
[mysqld] bind-address = 0.0.0.0
Crie usuário para acesso remoto.
Todo servidor linux funciona,
Para MSWin c: \ Localizar local de localização \ caminho do arquivo
fonte
Basta criar o usuário para algum banco de dados como
GRANT ALL PRIVILEGES ON <database_name>.* TO '<username>'@'%' IDENTIFIED BY '<password>'
Então vá para
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
e mude a linhabind-address = 127.0.0.1
parabind-address = 0.0.0.0
Depois disso, você pode se conectar a esse banco de dados a partir de qualquer IP.
fonte
Abra o seu
mysql console
e execute o seguinte comando (digite o nome do banco de dados, nome de usuário e senha):Em seguida, execute:
Abra a linha de comando e abra o arquivo
/etc/mysql/mysql.conf.d/mysqld.cnf
usando qualquer editor comroot privileges
.Por exemplo:
Em seguida, comente a linha abaixo:
Reinicie o mysql para refletir as alterações usando o comando:
Aproveitar ;)
fonte
Você precisa alterar o arquivo de configuração do mysql:
Comece com a edição do arquivo de configuração do mysql
adicionar:
fonte
Nos painéis de sites como o cPanel, você pode adicionar um único
%
(sinal de porcentagem) nos nomes de host permitidos para acessar seu banco de dados MySQL.Ao adicionar um único,
%
você pode acessar seu banco de dados a partir de qualquer IP ou site, mesmo a partir de aplicativos de desktop.fonte
Por exemplo, no meu CentOS
comente as seguintes linhas
então
fonte
Se você deseja conceder acesso remoto ao seu banco de dados a partir de qualquer endereço IP, execute o comando mysql e depois execute o seguinte comando.
fonte
o que funcionou no Ubuntu está concedendo todos os privilégios ao usuário:
e definindo o endereço de ligação em
/etc/mysql/mysql.conf.d/mysqld.cnf
:reiniciando o daemon mysql:
fonte
Você pode desativar toda a segurança editando /etc/my.cnf:
fonte