mysql n'est pas accessible à distance par défaut.
quoi ! Comment est-ce possible ! Dongdong, que tout le monde a tant loué, est en fait une version autonome par défaut. C'est trop jouet.
En fait, ceci ne concerne que le MySQL nouvellement installé. Le mysql nouvellement installé n'a qu'un seul compte, qui est la racine de l'administrateur, et il n'est accessible que localement. Il ne semble y avoir rien de mal à cela (mais plus prudent ?).
Alors, comment pouvons-nous activer l'accès à distance, par exemple, permettre à d'autres machines du même LAN d'accéder à sa base de données ?
Supposons que la situation initiale du compte MYSQL nouvellement installé est la suivante :
+------+-----------+| user | host | +------+-----------+| root | 127.0.0.1 | | root | ::1 || root | localhost | +------+-----------+3 rows in set (0.14 sec)
Après une recherche en ligne, certains experts ont dit que vous pouvez changer l'hôte en '%', afin qu'il peut être utilisé par toutes les machines visitées.
Cependant, la situation que je rencontre actuellement est qu'il existe un système développé par un tiers et que nous devons lire les données de sa base de données. Par défaut, son compte est comme celui ci-dessus et n'est accessible que localement. Dois-je modifier son compte ? Il semble que le changement soit très minime et qu'il ne devrait y avoir aucun risque, mais cela semble toujours faux.
Cependant, fondamentalement, tous les tutoriels sur Internet sont basés sur l'argument du changement d'hôte en '%', et il existe de nombreux articles dans le monde.
Je pense que l'idée devrait être comme ceci :
1. Créer un utilisateur
. 2. Autorisez cet utilisateur à autoriser l'accès à distance
Après le test, l'opération a réussi. Les étapes sont les suivantes :
1. Créez un utilisateur
create user 'test' identified by '123456'
L'hôte de l'utilisateur ainsi créé est '%'
Si vous souhaitez limiter l'accès à un certaine IP, vous pouvez utiliser Jiangzi :
create user 'test'@'192.168.0.164' identified by '123456'
D'accord, maintenant vous avez créé un utilisateur et autorisé l'accès à distance
2. >
Ici toutes les autorisations de la base de données db1 Toutes affectées au test.grant all on db1.* to test@'%';
De cette façon, test peut être utilisé pour accéder à la base de données mysql.
3. Effacez le mot de passe
Pour ce système tiers, son compte mysql est root et le mot de passe est vide. Comment l'écrire dans la chaîne de connexion ? Il s'avère qu'il existe trois façons d'écrire :server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1
pour vous connecter.
Alors comment effacer le mot de passe ? Vous pouvez Jiang Zi :
set password for test@'%'=password('');
Mysql n'est pas accessible à distance par défaut.
quoi ! Comment est-ce possible ! Dongdong, que tout le monde a tant loué, est en fait une version autonome par défaut. C'est trop jouet.
En fait, ceci ne concerne que le MySQL nouvellement installé. Le mysql nouvellement installé n'a qu'un seul compte, qui est la racine de l'administrateur, et il n'est accessible que localement. Il ne semble y avoir rien de mal à cela (mais plus prudent ?).
Alors, comment pouvons-nous activer l'accès à distance, par exemple, permettre à d'autres machines du même LAN d'accéder à sa base de données ?
Supposons que la situation initiale du compte MYSQL nouvellement installé est la suivante :
Après une recherche en ligne, certains experts ont dit que vous pouvez changer l'hôte en '%', afin qu'il peut être utilisé par toutes les machines visitées.+------+-----------+| user | host | +------+-----------+| root | 127.0.0.1 | | root | ::1 || root | localhost | +------+-----------+3 rows in set (0.14 sec)
Cependant, la situation que je rencontre actuellement est qu'il existe un système développé par un tiers et que nous devons lire les données de sa base de données. Son compte est par défaut celui ci-dessus, accessible uniquement localement. Dois-je modifier son compte ? Il semble que le changement soit très minime et qu'il ne devrait y avoir aucun risque, mais cela semble toujours faux.
Cependant, fondamentalement, tous les tutoriels sur Internet sont basés sur l'argument du changement d'hôte en '%', et il existe de nombreux articles dans le monde.
Je pense que l'idée devrait être comme ceci :
1. Créer un utilisateur. 2. Autorisez cet utilisateur à autoriser l'accès à distance1. Créez un utilisateurAprès le test, l'opération a réussi. Les étapes sont les suivantes :
create user 'test' identified by '123456'
Si vous souhaitez limiter l'accès à un certaine IP, vous pouvez utiliser Jiangzi :
D'accord, maintenant vous avez créé un utilisateur et autorisé l'accès à distancecreate user 'test'@'192.168.0.164' identified by '123456'
2. >
Ici toutes les autorisations de la base de données db1 Toutes affectées au test. De cette façon, test peut être utilisé pour accéder à la base de données mysql.grant all on db1.* to test@'%';
3. Effacez le mot de passe
Pour ce système tiers, son compte mysql est root et le mot de passe est vide. Comment l'écrire dans la chaîne de connexion ? Il s'avère qu'il existe trois façons d'écrire :Toutes les méthodes ci-dessus fonctionneront. Si vous vous connectez depuis la ligne de commande, vous pouvez faire ceci :
mysql -u test (Entrée)
server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1
Alors comment effacer le mot de passe ? Vous pouvez Jiang Zi :
set password for test@'%'=password('');