Ubuntu Server - Remote & local connect to mysql database

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Allen,

ik heb een ubuntu server waarop een mysql server draait. Nu werkt die "local" perfect maar via een "remote" connect lukt het me niet.

Nu heb ik wat zitten googlen en dit leert me dat ik in de my.cnf file een lijntje moet aanpassen of "unchecken". namelijk:

bind-address = 127.0.0.1 (ik heb ook eens bind-adress = serverip geplaatst maar dan wou m'n service niet meer opstarten en dan kan ik er denk ik ook "local" niet meer aan?).

my.cnf file:
code:
1
2
3
4
5
6
7
8
9
10
11
[mysqld]
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
#bind-address   = 127.0.0.1


Nu deed ik dit en restarte ik de mysql server (service mysql restart)
Nu kan ik er nog steeds "local" aan maar kan ik nog steeds niet remote connecten naar de database.

De poort 3306 werd op m'n router geforward naar de local webserver.
de user waar mee geconnect wordt zijn rechten staan ook goed denk ik:
Afbeeldingslocatie: http://f.cl.ly/items/0G1E052N153m0E2S2l1k/Screen%20Shot%202013-04-23%20at%2018.54.13.png
% wil toch zeggen from any host?

code waar ik probeer mee naar de server te connecteren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
$dbHost="serverip";
$dbUser="Admin";
$dbPass="wachtwoord";
$dbPort=3306;
$dbDatabase="Database";

$db = mysql_connect($dbHost . ":" . $dbPort, $dbUser, $dbPass) or die("Could not connect to server");
if(!$db){
    die ("No database");
}
if (!mysql_select_db($dbDatabase, $db)){
    die ("No database selected");
}



Dit blijft dit zeggen:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'serverip'

Doe ik nog iets mis?

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 02-10 10:44

Kees

Serveradmin / BOFH / DoC
Als je op de server kijkt met ssh, en je doet 'netstat -lnp|grep 3306' staat de mysql server daar ook tussen? Gebruik je het juiste ip? Zit er een firewall mischien in de weg ergens?

[ Voor 11% gewijzigd door Kees op 23-04-2013 19:16 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Neen:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 28174/mysqld

Ja ik gebruik het juiste ip, en volgens mij nergens een firewall.

[ Voor 25% gewijzigd door Amarog op 23-04-2013 19:23 ]


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 22:42

CAPSLOCK2000

zie teletekst pagina 888

Kijk even met tcpdump of de pakketjes ook echt binnenkomen op je server.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Woesh, mss had ik erbij moeten zetten dat ik een leek ben op gebied van linux. Ik typte even tcpdump en dan begint hij wat chinees uit te spugen. Ik zie veel verschijnen dat ik met mijn laptop via SSH verbonden ben met de server maar verder haal ik daar niet veel uit :)

Sorry...

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

Doe eens vanaf je lokale machine in een sql prompt het volgende:
select mysql;
select * from user where user like '%dmin%';


Wat krijg je dan? Als 't te veel is om te lezen, verander dan * naar host. Zo zie je of de gebruiker wel bestaat en welke host er aan gekoppeld is.

Als je op je webserver de mysql client installeert, kan je 't daar ook mee proberen trouwens, heb je geen php voor nodig. Je maakt dan verbinding met je MySQL server IP. Check de man page van het mysql commando.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
En waar geef ik dit in? In phpmyadmin? Die laatste zegt steeds:

#1046 - No database selected

Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 22:22

DukeBox

loves wheat smoothies

In je mysql client.

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Niet om dom te doen hoor ^^ maar zoals ik al zei, ik ben een leek als het om linux gaat.

Dus, waar of hoe benader ik die client op m'n server?

Acties:
  • 0 Henk 'm!

  • Frank...
  • Registratie: November 2009
  • Laatst online: 16-09 14:43
Zou volgens mij via phpMyAdmin ook moeten kunnen, maar het kan iig via ssh.
even mysql in te tikken en als je een wachtwoord ingesteld hebt mysql -p
daarna kun je de sql commando's invoeren.

Acties:
  • 0 Henk 'm!

  • DiGyPh0
  • Registratie: Juni 2001
  • Laatst online: 16:50
Je moet het bind-address op 0.0.0.0 zetten. Dan luistert MySQL op alle interfaces (en de MySQL daemon even herstarten)

[ Voor 18% gewijzigd door DiGyPh0 op 23-04-2013 20:20 ]

π-♭


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Frank... schreef op dinsdag 23 april 2013 @ 20:19:
Zou volgens mij via phpMyAdmin ook moeten kunnen, maar het kan iig via ssh.
even mysql in te tikken en als je een wachtwoord ingesteld hebt mysql -p
daarna kun je de sql commando's invoeren.
is idd hetzelfde als via phpmyadmin.
ERROR 1046 (3D000): No database selected

Maar als ik kijk in phpmyadmin zie ik wel dat de geselecteerde user alle rechten heeft op die database.
DiGyPh0 schreef op dinsdag 23 april 2013 @ 20:19:
Je moet het bind-address op 0.0.0.0 zetten. Dan luistert MySQL op alle interfaces (en de MySQL daemon even herstarten)
Gedaan, ik krijg nog steeds dezelfde melding... Lokaal blijft alles wel werken, ook als ik via het het net naar de webpagina surf werkt het. Maar eenmaal ik op een externe webserver via php wil connecten naar de database gaat het niet.

[ Voor 10% gewijzigd door Amarog op 23-04-2013 20:28 ]


Acties:
  • 0 Henk 'm!

  • yeehaw
  • Registratie: Juli 2007
  • Laatst online: 30-09 20:06
Voordat je die commandos's doet eerst even: use mysql;

Acties:
  • 0 Henk 'm!

  • Thapous
  • Registratie: Mei 2006
  • Laatst online: 18:05

Thapous

Nee toch niet.

Op ubuntu draait standaard wel UFW als Firewall, wellicht kun je deze nog ff uitzetten dmv:

code:
1
sudo ufw disable

//Thapous


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
code:
1
2
3
4
5
6
7
mysql> select host from user where user like 'Admin';
+------+
| host |
+------+
| %    |
+------+
1 row in set (0.00 sec)

Acties:
  • 0 Henk 'm!

  • DiGyPh0
  • Registratie: Juni 2001
  • Laatst online: 16:50
Wat is de output van

code:
1
telnet <server-ip> 3306

π-♭


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Thapous schreef op dinsdag 23 april 2013 @ 20:39:
Op ubuntu draait standaard wel UFW als Firewall, wellicht kun je deze nog ff uitzetten dmv:

code:
1
sudo ufw disable
Firewall stopped and disabled on system startup
opnieuw getest, ik kan er nog steeds niet op. Zou het dan allemaal niet aan mijn php code liggen?
DiGyPh0 schreef op dinsdag 23 april 2013 @ 20:42:
Wat is de output van

code:
1
telnet <server-ip> 3306
code:
1
2
3
4
Escape character is '^]'.
[
5.5.29-0ubuntu0.12.10.1EiIs&a80?!gb6(a2v{(SImysql_native_password
^[Connection closed by foreign host.

Acties:
  • 0 Henk 'm!

  • DiGyPh0
  • Registratie: Juni 2001
  • Laatst online: 16:50
Maak er eens

code:
1
$db = mysql_connect($dbHost, $dbUser, $dbPass) or die("Could not connect to server");


van. Je connect tenslotte toch op de standaard poort.

π-♭


Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Vanaf waar probeer je te telneten?

Het feit dat de telnet werkt op de server naar het externe IP adres, en je netstat output, geven beide aan dat je listen regel (nu) klopt.

Probeer eens te telnetten vanaf de machine waar de PHP code op wordt uitgevoerd.

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
DiGyPh0 schreef op dinsdag 23 april 2013 @ 21:05:
Maak er eens

code:
1
$db = mysql_connect($dbHost, $dbUser, $dbPass) or die("Could not connect to server");


van. Je connect tenslotte toch op de standaard poort.
Blijft hetzelfde ...
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'serverip' (4)
Could not connect to server
Rainmaker schreef op dinsdag 23 april 2013 @ 21:23:
Vanaf waar probeer je te telneten?

Het feit dat de telnet werkt op de server naar het externe IP adres, en je netstat output, geven beide aan dat je listen regel (nu) klopt.

Probeer eens te telnetten vanaf de machine waar de PHP code op wordt uitgevoerd.
Ik deed de telnet via SSH op de server, doe ik hem in terminal op m'n OS X krijg ik identiek dezelfde melding.

code:
1
2
3
4
5
Connected to dd5763f44.access.telenet.be.
Escape character is '^]'.
[
5.5.29-0ubuntu0.12.10.1HF*?=Uum?>Sd!q<rLc-UGmysql_native_password
Connection closed by foreign host.

Acties:
  • 0 Henk 'm!

  • Frank...
  • Registratie: November 2009
  • Laatst online: 16-09 14:43
Welke hosting provider gebruiker je?
Het is mogelijk dat ze externe mysql servers blokkeren.
aan de (db)server kant lijken me de instellingen allemaal goed.

Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
http://www.alfahosting.be/

Ik heb meerdere hosts. Ik probeer deze avond eens op andere.

Acties:
  • 0 Henk 'm!

Verwijderd

Als je met nmap -PN [ipadres] naar je server een verbinding maakt, wat geeft hij dan terug? Staat 3306 gewoon open?

Acties:
  • 0 Henk 'm!

  • Amarog
  • Registratie: Januari 2013
  • Laatst online: 15-08 17:08
Jup, ligt dus aan het feit dat m'n host externe servers blokkeert. Op een andere host werkt het perfect.

Groeten.
Pagina: 1