Comment faire pour autoriser la connexion à distance à mysql
J'ai installé MySQL Community Edition 5.5 sur ma machine locale et je veux autoriser les connexions à distance, de sorte que je peux me connecter depuis une source extérieure.
Comment puis-je le faire?
- double possible de Activer à distance de connexion MySQL
- Si vous vous trouvez à l'aide de DigitalOcean, vous pouvez essayer d'utiliser
sudo mysql_secure_installation
. FYI. - N'utilisez pas de code de mise en forme de texte qui n'est pas le code. Hors-sujet.
- pourquoi? honnête question par curiosité
Vous devez vous connecter pour publier un commentaire.
Qui est autorisé par défaut de MySQL.
Ce qui est désactivée par défaut est à distance
root
accès. Si vous souhaitez activer cette, exécutez cette commande SQL en local:Et ensuite trouver la ligne suivante et commentaire dans votre
my.cnf
fichier, qui vit habituellement sur/etc/mysql/my.cnf
sur Unix/OSX systèmes. Dans certains cas, l'emplacement pour le fichier est /etc/mysql/mysql.conf.d/mysqld.cnf).Si c'est un système Windows, vous pouvez le trouver dans le dossier d'installation MySQL, habituellement quelque chose comme
C:\Program Files\MySQL\MySQL Server 5.5\
et le nom de fichier seramy.ini
.Changement de ligne
à
Et redémarrer le serveur MySQL (Unix/OSX, et Windows) pour que les modifications prennent effet.
bind-address
ne fonctionne pas pour moi. Soitbind-address = 0.0.0.0
oubind-address = <server_ip>
œuvres.my.cnf
fichier et ne pas trouver unbind-address
directive il faut noter que dans mon cas (version de MySQL 14.14 sur Ubuntu 16.04.2), l'emplacement pour le fichier a été/etc/mysql/mysql.conf.d/mysqld.cnf
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '*****' WITH GRANT OPTION' at line 1
. Que dois-je faire?sudo ufw allow 3306/tcp
et enfinsudo service ufw restart
.Après avoir fait toutes ci-dessus, je ne pouvais toujours pas à vous connecter en tant que
root
à distance, mais Telnet port3306
confirmé queMySQL
a été accepter des connexions.J'ai commencé à regarder les utilisateurs de MySQL et remarqué qu'il y a plusieurs utilisateurs racine avec différents mots de passe.
Donc dans
MySQL
je ensemble de tous les mots de passe pour l'utilisateur root de nouveau et j'ai enfin pu connecter à distance commeroot
.update user set authentication_string=password('YOUR_PASSWORD') where user='root';
Juste une remarque de mon expérience, vous pouvez trouver le fichier de configuration en vertu de ce chemin
/etc/mysql/mysql.conf.d/mysqld.cnf
.(J'ai lutté pendant un certain temps pour trouver ce chemin)
sudo find /etc -iname 'mysql*.cnf'
Dans mon cas, j'ai essayé de vous connecter à un serveur mysql distant sur cent OS. Après être passé par tout un tas de solutions (l'octroi de tous les privilèges, suppression de liaisons ip,permettant la mise en réseau) problème n'était toujours pas arriver résolu.
Comme il s'est avéré, lors de la recherche dans diverses solutions,je suis tombé sur iptables, qui m'a fait réaliser mysql port 3306 est de ne pas accepter des connexions.
Voici une petite note sur la façon dont j'ai vérifié et réglé ce problème.
Espère que cette aide.
Veuillez suivre les étapes mentionnées ci-dessous afin de définir le caractère générique d'accès à distance pour l'Utilisateur MySQL.
Si vous avez installé MySQL à partir de
brew
il n'a vraiment de n'écouter que sur l'interface locale par défaut. Pour corriger cela, vous devez modifier/usr/local/etc/my.cnf
et modifier lebind-address
de127.0.0.1
à*
.Puis exécutez
brew services restart mysql
.Si votre serveur MySQL processus est à l'écoute sur 127.0.0.1 ou ::1 seulement alors vous ne serez pas en mesure de se connecter à distance. Si vous avez un
bind-address
paramètre dans/etc/my.cnf
ce pourrait être la source du problème.Vous devrez aussi ajouter des privilèges, pour un non-
localhost
utilisateur.127.0.0.1
?Juste F. Y. Je
J'ai tiré mes cheveux avec ce problème pendant des heures.. enfin, j'appelle mon fournisseur d'hébergement et a constaté que dans mon cas, à l'aide d'un serveur cloud que dans le panneau de contrôle pour 1and1, ils ont un pare-feu secondaire que vous avez à cloner et ajouter le port 3306. Une fois j'ai eu droit à..
Pour qui il en a besoin, vérifier le pare-feu port 3306 est ouvert aussi, si votre service de pare-feu est en cours d'exécution.
Ce blog Comment configurer un serveur MySQL sur le Réseau Local sera utile dans la mise en place d'un
MySQL
à partir de zéroEt pour OS X de gens y être conscient que le bind-address paramètre est généralement définie dans l'launchd plist et pas dans le mon.fichier ini. Donc dans mon cas, j'ai enlevé
<string>--bind-address=127.0.0.1</string>
de/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.~/Library/LaunchAgents
Si
mysqld
a un lier l'adresse ensemble à un bouclage/adresse locale (par exemple127.0.0.1
), le serveur ne sera pas accessible à partir des hôtes distants, parce que d'une interface de bouclage ne peut pas être atteint à partir de l'hôte distant.Définir cette option à
0.0.0.0
(::
pour IPv4+6) pour accepter les connexions à partir d'un hôte, ou à l'autre de l'extérieur accessible à l'adresse si vous voulez autoriser uniquement les connexions sur une seule interface.Source
quelques fois besoin d'utiliser nom de pc sur windows
première étape) mettre dans le fichier de configuration de mysql:
(pour laisser recibe les connexions tcp/ip)
deuxième étape) faire l'utilisateur dans mysql, table des utilisateurs, avec des nom de pc sur windows propierties, PAS ip