Maison >base de données >tutoriel mysql >mysql autorise l'accès à distance

mysql autorise l'accès à distance

黄舟
黄舟original
2017-02-15 10:53:241361parcourir


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 :


Toutes les réponses ci-dessus sont bonnes. Si vous vous connectez depuis la ligne de commande, vous pouvez faire ceci :
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
mysql -u test (Entrée)

pour vous connecter.

Alors comment effacer le mot de passe ? Vous pouvez Jiang Zi :

Je déplore l'excellence de MySQL. Il semble que son compte soit en réalité déterminé par le nom du compte hôte, ce qui équivaut à une clé primaire composite. Cette idée est très nouvelle. Très pratique aussi.
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 à distance


Après le test, l'opération a réussi. Les étapes sont les suivantes :
1. Créez un utilisateur


L'hôte de l'utilisateur ainsi créé est '%'
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 à distance
create 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)

pour vous connecter.
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 :

Je déplore l'excellence de MySQL. Il semble que son compte soit en réalité déterminé par le nom du compte hôte, ce qui équivaut à une clé primaire composite. Cette idée est très nouvelle. Très pratique aussi.

Ce qui précède est le contenu auquel MySQL autorise l'accès à distance. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !
set password for test@'%'=password('');
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn