Ir para conteúdo
Fórum Script Brasil
  • 0

MySql em Servidor


nergal

Pergunta

Olá!

Sou novo e estou com uma pequena dúvida.

Tenho dois computadores ligados em rede através de um switch. Em um deles (servidor), fica o banco e também o aplicativo que desenvolvi. (desenvolvido em C#)

No outro fica apenas o aplicativo e ele acessa o banco no servidor.

No computador onde está o banco, tudo funciona 100% mas não funciona no outro computador (o que deveria acessar o banco no servidor)

Como configuro o MySQL para que eu possa conectar nele de ambos computadores?

Agradeço a colaboração de todos.

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
Tenho dois computadores ligados em rede através de um switch. Em um deles (servidor), fica o banco e também o aplicativo que desenvolvi. (desenvolvido em C#)

No outro fica apenas o aplicativo e ele acessa o banco no servidor.

No computador onde está o banco, tudo funciona 100% mas não funciona no outro computador (o que deveria acessar o banco no servidor)

Como configuro o MySQL para que eu possa conectar nele de ambos computadores?

Questões:

Pelo IP da maquina servidora não está funcionando ?

Você está utilizando um usuário com permissões para acesso remoto ?

A maquina servidora tem algum firewall instalado ?

Link para o comentário
Compartilhar em outros sites

  • 0
Questões:

Pelo IP da maquina servidora não está funcionando ?

Você está utilizando um usuário com permissões para acesso remoto ?

A maquina servidora tem algum firewall instalado ?

Tentei usando o IP da máquina e não foi

A máquina servidora não tem firewall

Quanto ao usuário, ele esta como administrador.. o computador foi formatado/instalado e não foi mexido nas contas de usuário.

Link para o comentário
Compartilhar em outros sites

  • 0
Tentei usando o IP da máquina e não foi

A máquina servidora não tem firewall

Quanto ao usuário, ele esta como administrador.. o computador foi formatado/instalado e não foi mexido nas contas de usuário.

Certo, você recebe alguma mensagem de erro ?

A mensagem exata não sei, e só vou ter acesso ao servidor nesse fim de semana.. mas tenho que chegar lá com a solução já.

Era um erro do tipo "o aplicativo não pode acessar 192.168.0.1"

Não sei se é alguma falha na instalação/configuração do banco.. ou algum erro na string de conexão..

Link para o comentário
Compartilhar em outros sites

  • 0
A mensagem exata não sei, e só vou ter acesso ao servidor nesse fim de semana.. mas tenho que chegar lá com a solução já.

Era um erro do tipo "o aplicativo não pode acessar 192.168.0.1"

Esse 192.168.0.1 não é seu gateway ??

Tenta fazer um ping para o IP que você está utilizando, é bem provável que o IP do servidor seja outro.

Não sei se é alguma falha na instalação/configuração do banco.. ou algum erro na string de conexão..

Acho que, ou o IP que você está utilizando está errado ou a string de conexão está errada uma vez que sua aplicação funciona na maquina que está o servidor (segundo o que você disse).

Basicamente, no C# a string de conexão é:

connection = new MySqlConnection( "Persist Security Info=False;Server=192.168.0.1;Port=3306;Database=SuaBaseDeDados;Uid=ousuario;Pwd=suasenha;" );

[]'s

J. Neto

Link para o comentário
Compartilhar em outros sites

  • 0
Esse 192.168.0.1 não é seu gateway ??

Tenta fazer um ping para o IP que você está utilizando, é bem provável que o IP do servidor seja outro.

Não sei se é alguma falha na instalação/configuração do banco.. ou algum erro na string de conexão..

Acho que, ou o IP que você está utilizando está errado ou a string de conexão está errada uma vez que sua aplicação funciona na maquina que está o servidor (segundo o que você disse).

Basicamente, no C# a string de conexão é:

connection = new MySqlConnection( "Persist Security Info=False;Server=192.168.0.1;Port=3306;Database=SuaBaseDeDados;Uid=ousuario;Pwd=suasenha;" );

[]'s

J. Neto

o ping responde, entre ambos computadores

as configurações dos computadores, quanto a rede são:

PC SERVIDOR

Endereço IP: 192.168.0.1

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

PC 2

Endereço IP: 192.168.0.2

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0
PC SERVIDOR

Endereço IP: 192.168.0.1

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

PC 2

Endereço IP: 192.168.0.2

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

Bom, se você consegue pingar o seu servidor então o problema está nas credenciais do usuário. Tenta o seguinte:

GRANT ALL ON *.* TO 'root'@'192.168.0.2';
GRANT SELECT, INSERT ON *.* TO 'root'@'192.168.0.2';

[]'s

J. Neto

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

  • 0
PC SERVIDOR

Endereço IP: 192.168.0.1

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

PC 2

Endereço IP: 192.168.0.2

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

Bom, se você consegue pingar o seu servidor então o problema está nas credenciais do usuário. Tenta o seguinte:

GRANT ALL ON *.* TO 'root'@'192.168.0.2';
GRANT SELECT, INSERT ON *.* TO 'root'@'192.168.0.2';

[]'s

J. Neto

Grato pela ajuda, quando chegar em casa vou montar uma rede e testar

Se funcionar, aviso aqui!

Obrigado mais uma vez!

Link para o comentário
Compartilhar em outros sites

  • 0
PC SERVIDOR

Endereço IP: 192.168.0.1

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

PC 2

Endereço IP: 192.168.0.2

Máscara de sub-rede: 255.255.255.0

Gateway Padrão: 192.168.0.1

Bom, se você consegue pingar o seu servidor então o problema está nas credenciais do usuário. Tenta o seguinte:

GRANT ALL ON *.* TO 'root'@'192.168.0.2';
GRANT SELECT, INSERT ON *.* TO 'root'@'192.168.0.2';

[]'s

J. Neto

Grato pela ajuda, quando chegar em casa vou montar uma rede e testar

Se funcionar, aviso aqui!

Obrigado mais uma vez!

Da o seguinte erro:

"Error No 2003

Can't connect ToMysql server on 192.168.0.1 (10060)"

Link para o comentário
Compartilhar em outros sites

  • 0
GRANT ALL ON *.* TO 'root'@'192.168.0.2';
GRANT SELECT, INSERT ON *.* TO 'root'@'192.168.0.2';
Da o seguinte erro: "Error No 2003 Can't connect ToMysql server on 192.168.0.1 (10060)"
O seu servidor está ouvindo a porta 3306 ? Tenta da sua maquina cliente conectar ao servidor via telnet:
telnet 192.168.0.1 3306
Se você conseguir estabelecer uma conexão ai você tenta o código abaixo (fecha a conexão telnet primeiro), senão você coloca a mensagem de erro aqui no fórum
GRANT ALL PRIVILEGES IN seubancodedados.* TO 'onomedousuario'@'%' identified by 'suasenha';

[]'s

J. Neto

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

  • 0
GRANT ALL ON *.* TO 'root'@'192.168.0.2';
GRANT SELECT, INSERT ON *.* TO 'root'@'192.168.0.2';
Da o seguinte erro: "Error No 2003 Can't connect ToMysql server on 192.168.0.1 (10060)"
O seu servidor está ouvindo a porta 3306 ? Tenta da sua maquina cliente conectar ao servidor via telnet:
telnet 192.168.0.1 3306
Se você conseguir estabelecer uma conexão ai você tenta o código abaixo (fecha a conexão telnet primeiro), senão você coloca a mensagem de erro aqui no fórum
GRANT ALL PRIVILEGES IN seubancodedados.* TO 'onomedousuario'@'%' identified by 'suasenha';

[]'s

J. Neto

vou testar e posto aqui o resultado!

só uma duvida, se o usuario do banco não requisitar senha..

aquela parte do "identified by 'suasenha';" eu deixo como?

identified by ''; ?

'onomedousuario'@'%'

o % eu substituo por algo ou deixo o %?

Grato!

Editado por nergal
Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'nergal'!

GRANT ALL PRIVILEGES IN seubancodedados.* TO 'onomedousuario'@'%' identified by 'suasenha';
vou testar e posto aqui o resultado! só uma duvida, se o usuario do banco não requisitar senha.. aquela parte do "identified by 'suasenha';" eu deixo como?
Não usa a parte identified by 'suasenha'. Fica assim:
GRANT ALL PRIVILEGES IN seubancodedados.* TO 'onomedousuario'@'%';

... o % eu substituo por algo ou deixo o %?
deixa o %
Link para o comentário
Compartilhar em outros sites

  • 0
o erro foi

@♦Host is not allowed to connect to this MySQL server

Estranho, nessa mensagem de erro deveria ter o nome/ip da maquina que você tentou conectar e não um ♦...

Você está usando Windows ou ...nix ?

Tenta adicionar uma entrada no seu arquivo hosts para a maquina que vai conectar no servidor.

Nos ...nix o arquivo é: /etc/hosts

Nos Windows eu não tenho certeza mas acho que deve ficar em /windows/hosts

Depois de adicionar a entrada em hosts com o a maquina que vai conectar ao servidor você faz o seguinte:

Vai até o servidor e acesse o mysql pela linha de comando e insira na sua tabela `mysql`.`user` uma nova linha com o nome de usuario e no servidor você coloca "%". Para todos as colunas que o tipo for enum você coloca "Y". A estrutura da tabela user é:

mysql> show fields from user;
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field                 | Type                              | Null | Key | Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host                  | char(60)                          | NO   | PRI |         |       | 
| User                  | char(16)                          | NO   | PRI |         |       | 
| Password              | char(41)                          | NO   |     |         |       | 
| Select_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Insert_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Update_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Delete_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Create_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Drop_priv             | enum('N','Y')                     | NO   |     | N       |       | 
| Reload_priv           | enum('N','Y')                     | NO   |     | N       |       | 
| Shutdown_priv         | enum('N','Y')                     | NO   |     | N       |       | 
| Process_priv          | enum('N','Y')                     | NO   |     | N       |       | 
| File_priv             | enum('N','Y')                     | NO   |     | N       |       | 
| Grant_priv            | enum('N','Y')                     | NO   |     | N       |       | 
| References_priv       | enum('N','Y')                     | NO   |     | N       |       | 
| Index_priv            | enum('N','Y')                     | NO   |     | N       |       | 
| Alter_priv            | enum('N','Y')                     | NO   |     | N       |       | 
| Show_db_priv          | enum('N','Y')                     | NO   |     | N       |       | 
| Super_priv            | enum('N','Y')                     | NO   |     | N       |       | 
| Create_tmp_table_priv | enum('N','Y')                     | NO   |     | N       |       | 
| Lock_tables_priv      | enum('N','Y')                     | NO   |     | N       |       | 
| Execute_priv          | enum('N','Y')                     | NO   |     | N       |       | 
| Repl_slave_priv       | enum('N','Y')                     | NO   |     | N       |       | 
| Repl_client_priv      | enum('N','Y')                     | NO   |     | N       |       | 
| Create_view_priv      | enum('N','Y')                     | NO   |     | N       |       | 
| Show_view_priv        | enum('N','Y')                     | NO   |     | N       |       | 
| Create_routine_priv   | enum('N','Y')                     | NO   |     | N       |       | 
| Alter_routine_priv    | enum('N','Y')                     | NO   |     | N       |       | 
| Create_user_priv      | enum('N','Y')                     | NO   |     | N       |       | 
| Event_priv            | enum('N','Y')                     | NO   |     | N       |       | 
| Trigger_priv          | enum('N','Y')                     | NO   |     | N       |       |
| ssl_type              | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |
| ssl_cipher            | blob                              | NO   |     | NULL    |       |
| x509_issuer           | blob                              | NO   |     | NULL    |       |
| x509_subject          | blob                              | NO   |     | NULL    |       |
| max_questions         | int(11) unsigned                  | NO   |     | 0       |       |
| max_updates           | int(11) unsigned                  | NO   |     | 0       |       |
| max_connections       | int(11) unsigned                  | NO   |     | 0       |       |
| max_user_connections  | int(11) unsigned                  | NO   |     | 0       |       |
+-----------------------+-----------------------------------+------+-----+---------+-------+
39 rows in set (0.01 sec)
Você terá alguma coisa assim:
mysql> select * from user where user="root" and host="%";                                                                                          
+-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+                
| Host      | User | Password         | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |                
+-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| %         | root | xxxxxxxxxxxxxxxx | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            |          |            |             |              |             0 |           0 |               0 |                    0 |
+-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
1 row in set (0.00 sec)
Depois de editar você executa:
mysqladmin flush-privileges
Feito isso você precisará reiniciar seu servidor:
mysqld --skip-grant-tables --log restart

Agora você vai na sua maquina cliente e tenta conectar. Se conectar você vai voltar no seu servidor, irá abrir o log do seu servidor e irá ver a entrada que corresponde a sua conexão. Nessa entrada terá o nome/ip da maquina que você conectou. Ai você volta ao servidor e no lugar do % você irá colocar o nome/ip que está no log.

Tenta conectar novamente.

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...