Connexion distante base SQL impossible - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 25-11-2015 à 13:38:01
ton serveur mysql n'écoute pas sur le réseau.
transforme :
|
en
|
avec a.b.c.d correspondant à ton IP, relance le service et zou
Marsh Posté le 25-11-2015 à 14:18:26
black_lord a écrit : ton serveur mysql n'écoute pas sur le réseau.
|
Je préfère l'option du tunnel via autossh (qui va au passage binder sur un port exotique en sortie et permettre de pas avoir a ouvrir le port sql sur la box)
Marsh Posté le 25-11-2015 à 16:04:46
j'avais pas fait gaffe que c'etait hors-lan
c'est moche
Marsh Posté le 25-11-2015 à 17:33:28
Le restart se passe mal du coup
NAS> cp my.cnf /var/packages/MariaDB/etc
NAS> /usr/syno/bin/synopkg restart MariaDB
Failed to restart package 263
Marsh Posté le 25-11-2015 à 20:55:46
Ca peut aider?
NAS> ps w|grep mysqld
13867 root 3768 S /bin/sh /usr/bin/mysqld_safe --datadir=/var/services/mysql --pid-file=/run/mysqld/mysqld.pid
14172 mysql 324m S /usr/bin/mysqld --basedir=/usr --datadir=/var/services/mysql --plugin-dir=/usr/lib/mysql/plugin --user=my
19724 root 3776 S grep mysqld
Marsh Posté le 26-11-2015 à 09:10:02
ERREUR SOUS RESEAU ENTREPRISE/**********************
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
à MySql.Data.MySqlClient.NativeDriver.Open()
à MySql.Data.MySqlClient.Driver.Open()
à MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
à MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
à MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
à MySql.Data.MySqlClient.MySqlPool.GetConnection()
à MySql.Data.MySqlClient.MySqlConnection.Open()
à WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) dans C:\Users\MyPath\Documents\Visual Studio 2015\Projects\Projet\Projet\Form1.vb:ligne 15
Acces en xx.xxx.xxx.xxx:3306 depuis un navigateur web----> Impossible d'afficher la page
ERREUR DEPUIS UNE CONNEXION TELEPHONE/**********************
MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host 'xx.xxx.xxx.xxx' for user 'MyUser' using method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.EndOfStreamException: Tentative de lecture au-delà de la fin du flux.
à MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
à MySql.Data.MySqlClient.MySqlStream.LoadPacket()
à MySql.Data.MySqlClient.MySqlStream.LoadPacket()
à MySql.Data.MySqlClient.MySqlStream.ReadPacket()
à MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
à MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed(Exception ex)
à MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
à MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
à MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset)
à MySql.Data.MySqlClient.NativeDriver.Open()
à MySql.Data.MySqlClient.Driver.Open()
à MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
à MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
à MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
à MySql.Data.MySqlClient.MySqlPool.GetConnection()
à MySql.Data.MySqlClient.MySqlConnection.Open()
à WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) dans C:\Users\Path\Documents\Visual Studio 2015\Projects\Projet
Acces en xx.xxx.xxx.xxx:3306 depuis un navigateur web:
R���
5.5.44-MariaDB�2���G*<,iK|N�ÿ÷!� ����������P&kiP3NmZ[<X�mysql_native_password�
Marsh Posté le 26-11-2015 à 12:36:04
Reste ERREUR SOUS RESEAU ENTREPRISE/**********************
Le problème semble venir d'un proxy...
Marsh Posté le 26-11-2015 à 14:01:09
sans vouloir être désagréable, est ce que tu comprends ce que tu fais ? parce que vouloir accéder à une DB via un browser, ça sous entend que non.
Marsh Posté le 26-11-2015 à 17:35:37
Je ne veux pas accéder à ma base par le browser, c'était juste pour tester le retour sur mon port 3306.
Après je te l'accorde c'est pas mon métier, mais j'ai tout même résolu mon problème en passant par le port 8080.
Marsh Posté le 26-11-2015 à 17:56:58
Non mais coco, t'as la solution pour passer a travers depuis ma remarque sur autossh : ( genre en cherchant sur google, ça te renvoie ça https://wiki.archlinux.fr/Autossh )
Mais, t'as fait comme t'as eu envie !
Marsh Posté le 26-11-2015 à 18:48:45
Désolé, le mot "autossh" m'a fait peur , mais je vais étudier cette solution maintenant car je trouve pas ma solution terrible mais je voulais quand même savoir pourquoi ça ne marchait pas.
Merci à vous.
Marsh Posté le 25-11-2015 à 13:33:53
Bonjour,
Après une semaine de recherche je m'en remets à vous pour me donner de nouvelles pistes...
Le but:
Accéder à une base SQL depuis l'extérieure.
Le matériel / les softs:
Un NAS synology DS412+ , phpMyAdmin, MariDB, accès en VB.net
Le code réduit est le suivant:
Ce code marche très bien sous mon propre réseau.
Depuis l'extérieure le message d'erreur est:
Unable to connect to any of the specified MySQL hosts.
J'ai redirigé mon port 3306 sur ma box vers mon NAS.
J'ai modifié le fichier my.cnf qui se trouve à trois endroits:
le fichier ressemble à ça:
#bind-address =0.0.0.0
port = 3306
socket = /run/mysqld/mysqld.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
innodb_data_home_dir = /var/services/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/services/mysql
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
#innodb_log_file_size = 5M
Je n'ai pas de ligne "Skip-networking" nulle part.
Pour finir une commande à distance en SSH:
mysql -u MyUser -p -h xx.xxx.xxx.xxx
me retourne:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 348
Server version: 5.5.44-MariaDB Source distribution
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement
Il me semble avoir fait tout ce qu'il était possible de faire, pourquoi je ne parviens pas à atteindre cette base de l'extérieure...?
Merci d'avance pour vos contributions.
-- edit BL pour le formattage
Message édité par black_lord le 25-11-2015 à 13:39:48