Pages : 1
#1 Le 11/04/2017, à 12:15
- tolkC
Connexion externe de base de données mySQL
Bonjour,
Je suis en train de développer une application mobile avec Ionic, j'ai besoin de connecter mon application à une base de données hébergée sur un serveur dédié chez Gandi avec ubuntu apache2 mySQL phpmyadmin.
En tentant de me connecter j'obtiens l'erreur : " Warning: mysqli::__construct():(HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\....
Comment configurer mySQL pour débloquer la connexion externe ?
Dans quel fichier les connexions externes sont bloquées ?
Merci beaucoup,
Caroline
Hors ligne
#2 Le 11/04/2017, à 14:03
- Vobul
Re : Connexion externe de base de données mySQL
Salut Caroline,
Par défaut les serveurs MySQL n'acceptent de connexions que depuis localhost. Il faut donc modifier ta config mysql pour accepter des connexions de l'extérieur. N'oublie pas d'utiliser TLS (SSL) !
Le fichier c'est /etc/mysql/my.cnf.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 11/04/2017, à 15:10
- gl38
Re : Connexion externe de base de données mySQL
Tu dois avoir une ligne du genre
bind-address = 127.0.0.1
Il faut la commenter en mettant un # devant et redémarrer le service mysql.
C'est évidemment une porte ouverte aux intrusions...
Cordialement,
Guy
Hors ligne
#4 Le 11/04/2017, à 15:11
- tolkC
Re : Connexion externe de base de données mySQL
Merci pour vos réponses.
Lorsque j'accède à ce fichier (/etc/mysql/my.cnf) je me retrouve avec ça :
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# [url]http://dev.mysql.com/doc/mysql/en/server-system-variables.html[/url]
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
Ce fichier ne contenant pas la ligne : "bind-address = 127.0.0.1" pour pouvoir la commenter comme lu précédemment dans tous les forums, je me suis rendue dans le fichier "/etc/mysql/mysql.conf.d/mysqld.cnf" qui contenait la ligne et je l'ai commenté :
/etc/mysql/mysql.conf.d/mysqld.cnf :
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# 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
#
# * Fine Tuning
#
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
Cependant j'ai toujours la même erreur lorsque j'essaye de rentrer des données dans ma base de données via un formulaire.
(Warning: mysqli::__construct():(HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\....)
Que dois-je faire pour faire disparaître l'erreur ?
Caroline
Modération : merci à l'avenir d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 11/04/2017, à 18:35)
Hors ligne
#5 Le 11/04/2017, à 15:43
- bruno
Re : Connexion externe de base de données mySQL
Il faut que ton serveur MySQL ait au moins un utilisateur configuré pour pouvoir se connecter depuis n'importe qul hôte (ou à minima depuis ton IP).
Là, tu essaies visiblement de te connecter avec l'utilisateur root qui n'a de droits que sur l'hôte local (root@localhost).
#6 Le 11/04/2017, à 15:50
- Vobul
Re : Connexion externe de base de données mySQL
C'est surtout qu'elle tente de se connecter à localhost, donc forcément ça marche pas…
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#7 Le 11/04/2017, à 16:04
- tolkC
Re : Connexion externe de base de données mySQL
Mon serveur MySQL à plusieurs utilisateurs dont "root" où le "localhost" est le nom d'hôte et root possède " all privileges"
Dernière modification par tolkC (Le 11/04/2017, à 16:05)
Hors ligne
#8 Le 11/04/2017, à 16:38
- gl38
Re : Connexion externe de base de données mySQL
Il faudrait ajouter dans la table user de mysql une ligne pour un user root avec ton numéro IP dans la colonne host. Le "all privileges" ne suffit pas.
Avec phpmyadmin, ce n'est pas bien compliqué.
Cordialement,
Guy
Hors ligne
#9 Le 11/04/2017, à 16:46
- bobe
Re : Connexion externe de base de données mySQL
Mieux encore, créer pour cela un autre utilisateur avec des droits restreints.
Hors ligne
#10 Le 12/04/2017, à 08:24
- mazarini
Re : Connexion externe de base de données mySQL
C'est surtout qu'elle tente de se connecter à localhost, donc forcément ça marche pas…
Effectivement le message est "Access denied for user 'root'@'localhost'" ; ce qui semble montrer que tu essayes de te connecter sur un mysql local et pas sur le mysql distant.
Il me semble qu'avant que tu ais changé le bind, l'erreur aurait concerné un problème pour joindre l’hôte qui n'écoutait que sur 127.0.0.1.
S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)
Hors ligne
Pages : 1