web-dev-qa-db-fra.com

Impossible de se connecter au serveur MySQL sur (ip ou nom de domaine)

J'essaie de configurer un serveur Web (Debian 7). J'ai suivi cela tutoriel . Je loue mon serveur grâce au service Gandi.net. Et j'ai maintenant Apache2, mysql, php5 opérationnel. Je me connecte en utilisant la commande suivante sur le terminal: ssh [email protected]

La prochaine étape consiste à créer ma base de données via la suite pro et je ne sais pas comment le faire et la documentation n'est pas si claire ... Voici de quoi je parle: enter image description here

J'ai essayé de me connecter:

  • Nom: un nom, j'ai trouvé clair. (Je pense que je peux mettre quelque chose ici, non?)
  • Hôte: ip ou nom de domaine
  • Utilisateur: le nom d'utilisateur que j'utilise dans ma connexion ssh (cf ci-dessus)
  • Mot de passe: le mot de passe que j'utilise à la fois pour la connexion ssh (cf ci-dessus) et la connexion mysql

Pour le reste, je suis parti tel quel et j'ai reçu ce message d'erreur:

Impossible de se connecter à Host domainname.com, ou la demande a expiré.

Assurez-vous que l'adresse est correcte et que vous disposez des privilèges nécessaires, ou essayez d'augmenter le délai de connexion (actuellement 10 secondes).

MySQL a dit: Impossible de se connecter au serveur MySQL sur 'domainename.com' (61) '(2)

Une idée de comment je pourrais faire ça?

13
Ambroise Collon

Si vous effectuez une installation normale de MySQL sur Debian, il sera configuré pour bloquer les connexions externes à la base de données.

Cela signifie que vous devez toujours dire à MySQL que l'accès externe est OK. Pour ce faire, vous devez mettre à jour l'adresse de liaison pour MySQL. Ceci est configuré dans my.cnf, qui, sur les systèmes basés sur Debian, est situé dans /etc/mysql/my.cnf.

Là, trouvez la section qui dit

[mysqld]

Là-bas, vous devez vous assurer que

  • la ligne skip-networking est soit commenté (les commentaires commencent par un '#'), soit absent, et
  • L'adresse de liaison est définie sur 0.0.0.0 (ce qu'il est s'il n'y a pas d'adresse de liaison de ligne) ou à l'adresse IP de votre serveur.

Après cela, vous devez redémarrer votre service MySQL. Ensuite, vous devez créer un utilisateur autorisé à accéder à distance. Cela peut être fait avec une requête SQL:

GRANT ALL ON yourdatabase.* TO youruser@'*' IDENTIFIED BY 'yourpassword';

Vous pouvez désactiver l'astérisque pour l'adresse IP à partir de laquelle vous vous connecterez, si elle est la même à chaque fois.

Enfin, vous devez ouvrir le port 3306 (le port utilisé par MySQL) sur votre pare-feu. Ce n'est généralement pas nécessaire car il est déjà ouvert sur la plupart des systèmes, mais cela peut être fait en utilisant la commande iptables suivante.

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
service iptables save

Source: 1

22
Bert Peters

C'est la solution qui a fonctionné pour moi: dans Debian 7, regardez dans le fichier my.cnf sous /etc/mysql/my.cnf et trouvez les lignes suivantes:

# 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

Modifiez maintenant le 127.0.0.1 à l'adresse IP du serveur mysql, vous souhaitez vous connecter ou 0.0.0.0 pour aucune restriction.

8
Trendfischer

J'essayais de trouver le fichier .cnf, j'ai donc fait ce qui suit:

Sudo find / -name "*.cnf"

/etc/mysql/mysql.conf.d/mysqld.cnf
/etc/mysql/my.cnf
/etc/mysql/mysql.cnf
/etc/mysql/conf.d/mysqldump.cnf
/etc/mysql/conf.d/mysql.cnf

J'ai édité / etc/mysql/mysql.conf.d/mysqld.cnf basé sur

strace mysql ";" 2>&1  | grep cnf

stat("/etc/my.cnf", 0x7ffda9472660)     = -1 ENOENT (No such file or directory)
stat("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=683, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY)     = 3
stat("/etc/mysql/conf.d/mysql.cnf", {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
open("/etc/mysql/conf.d/mysql.cnf", O_RDONLY) = 4
stat("/etc/mysql/conf.d/mysqldump.cnf", {st_mode=S_IFREG|0644, st_size=55, ...}) = 0
open("/etc/mysql/conf.d/mysqldump.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0644, st_size=3034, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", {st_mode=S_IFREG|0644, st_size=21, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", O_RDONLY) = 4
stat("/root/.my.cnf", 0x7ffda9472660)   = -1 ENOENT (No such file or directory)
stat("/root/.mylogin.cnf", 0x7ffda9472660) = -1 ENOENT (No such file or directory)

Et changé bind-address à mon adresse IP locale.

1
user260826
  1. locate my.cnf
  2. vi <copier le chemin>
    pour par exemple ==> vi /usr/local/etc/my.cnf
  3. Maintenant, vous voyez et comparez ci-dessous si vous trouvez une différence, puis mettez à jour
# Default Homebrew MySQL server config  
[mysqld]
# Only allow connections from localhost  
bind-address = 0.0.0.0

Appuyez maintenant sur le bouton => esc et: wq (commandes vi)

Redémarrez MySQL =>

Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo /usr/local/mysql/support-files/mysql.server start

Bon maintenant ...

0
Jitendra

Je résout le problème en exécutant simplement cette ligne sur le terminal

ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

your_user = root pour moi
your_password = something choisissez ce que vous voulez

0
Henry Tirla

Sudo vim/etc/ssh/sshd_config

définissez localhost dans le fichier httpd.conf comme suit

ServerName localhost

ou bien le port n'acceptera pas votre demande de serveur et affichera la connexion au serveur ip_address

0
Manu R S