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:
J'ai essayé de me connecter:
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?
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
skip-networking
est soit commenté (les commentaires commencent par un '#'), soit absent, et0.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
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.
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.
locate my.cnf
vi /usr/local/etc/my.cnf
# 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 ...
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 moiyour_password = something
choisissez ce que vous voulez
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