Portál AbcLinuxu, 12. května 2025 07:58

Dotaz: Jmené serverů a napojení na db?

poky74 avatar 27.5.2009 20:03 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Jmené serverů a napojení na db?
Přečteno: 485×
Odpovědět | Admin
Nevím do jaké kategorie to zařadit, tak jsem vybral tu základní, jakožto universální.

Vím, je to primitivní věc, a lidem to nejspíše připadá tak primitivní, že se na to nedá ani nic vygooglit, ovšem já jsem se s tím ještě nesetkal, tudíž nevím co s tím...

Mám 2 servery, jména:

MyPc-obstarává databázi, zároveň slouží jako router pro druhý server

Baium-obstarává apache, php

Do /etc/hosts u počítače jménem MyPc jsem dal tohle:

127.0.0.1 MyPc.serverovna.org MyPc #doména serverovna.org je samozřejmě vymyšlená

A do baiuma jsem dal tohle:

127.0.0.1 baium.serverovna.org baium

Problém je když se v php scritu (prováděném na baimovi) pokouším připojit na db (která se nachází na MyPc) - tedy když uvedu jako mysql server "MyPC" píše to chybu:

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'MyPc' (2) in /var/www/www/pripojeni.php on line 19

Když zadám přímo adresu serveru s db píše zase tohle:

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /var/www/www/pripojeni.php on line 19

Tak jak se v takovémto případě postupuje? Děkuji za rady

Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.5.2009 20:10 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebylo by lepší do /etc/hosts na mypc dát adresu baiuma a do /etc/hosts na baiumovi dát adresu mypc? Předpokládá se snad že chcte komunikovat z baium na mypc, tak by baium celkem měl mít možnost přeložit si mypc na IP adresu, ne?
poky74 avatar 27.5.2009 20:24 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
jak jsi řekl provedl jsem...

/etc/hosts na mypc:

127.0.0.1 localhost poky.name animator.poky.name MyPc 127.0.0.1 MyPc.serverovna.org MyPc 192.168.0.2 baium.serverovna.org baium

/etc/hosts baium:

127.0.0.1 localhost 192.168.0.2 baium.baium.org baium 127.0.0.1 baium.serverovna.org baium 192.168.0.1 MyPc.serverovna.org MyPc

Nevím jestli to an to má vliv, ale ani jeden stroj jsem nerestartoval, ovšem teď, jak při připojování pomocí "MyPc" nebo "192.168.0.1" to píše tohle:

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /var/www/www/pripojeni.php on line 19
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
28.5.2009 01:21 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Prima, tím jsi odstranil jeden problém s převodem jména na IP. Restart netřeba. Proč byla "Lost connection" to netuším, vypadá to že by mohla fungovat komunikace jen jedním směrem (tam), tedy že se na baium nedostanou odpovědi od mypc.
poky74 avatar 27.5.2009 20:18 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Koukl jsem se pro zajímavost do logů, a pokud se pokouším napojit přez MyPc (ne přez ip) tak mi to shorewall rejectne:

May 27 20:06:02 localhost kernel: [ 1326.711454] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43350 DF PROTO=UDP SPT=58519 DPT=53 LEN=40 May 27 20:06:02 localhost kernel: [ 1326.711938] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43350 DF PROTO=UDP SPT=46203 DPT=53 LEN=40 May 27 20:06:02 localhost kernel: [ 1326.914804] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43401 DF PROTO=UDP SPT=48845 DPT=53 LEN=40 May 27 20:06:02 localhost kernel: [ 1327.056446] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43436 DF PROTO=UDP SPT=52599 DPT=53 LEN=40 May 27 20:06:02 localhost kernel: [ 1327.230258] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43480 DF PROTO=UDP SPT=60554 DPT=53 LEN=40 May 27 20:06:02 localhost kernel: [ 1327.381038] Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.0.2 DST=212.158.128.3 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=43518 DF PROTO=UDP SPT=58769 DPT=53 LEN=40

Tedy jsem do /etc/shorewall/rules přidal řádek:

ACCEPT loc fw UDP 53

"loc" je apache server a "fw" je mysql

Ovšem pořát ta samá chyba, i přez tento rádek se to rejectuje...(ano, shorewall jsem restartoval)
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 27.5.2009 20:59 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Začněme tím, že nám pošleš z obou strojů výpis příkazu :

ip addr show

A výsledek dej prosím do stylu "Preformatted text"

Potom poradíme přesně co má být v /etc/hosts a můžeme pokračovat ;-)

Fordem tam, vlakem zpátky :-)
poky74 avatar 27.5.2009 22:00 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Ok, super... Zde:

MyPc
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth1: <LBROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:00:1c:0a:05:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.63 scope global eth1
    inet6 fe80::200:1cff:fe0a:5d4/64 scope link
       valid_lft forever preferred_lft forever
3: eth0: <LBROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:1d:92:0f:0a:5d brd ff:ff:ff:ff:ff:ff
    inet 85.207.34.159/26 brd 212.158.128.2 scope global eth0
    inet6 fe80::21d:92ff:fe0f:a5d/64 scope link
       valid_lft forever preferred_lft forever



Baium
1: lo: <LLOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <LBROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:04:ac:59:24:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::204:acff:fe59:24da/64 scope link
       valid_lft forever preferred_lft forever

Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 28.5.2009 11:31 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?

Takže na obou strojích bude v '/etc/hosts':

127.0.0.1 localhost.localdomain localhost
192.168.0.1 mypc.serverovna.org mypc
192.168.0.2 baium.serverovna.org baium

teď už by na obou strojích mělo fungovat

ping mypc
ping baium

Podle tohoto : http://forums.mysql.com/read.php?52,151255,151255#msg-151255 je nejspíš ještě potřeba editovat '/etc/my.cnf' a změnit nastavení bind address z localhost na mypc a při připojování nepoužívat IP adresu ale používat hostname.
 

Snad to pomohlo..

Fordem tam, vlakem zpátky :-)
poky74 avatar 28.5.2009 17:36 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
A bude potřeba stroje restartovat? nebo apache ... etc?
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
poky74 avatar 28.5.2009 17:56 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Dobrá, tak tedy jsem nerestartoval...

Pingu se (pign baium, ping MyPc...) ale stále píše chybu :

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /var/www/sw1/pripojeni.php on line 19

V mysql logu na MyPc nic není, takže ten požadavek na db tam ani nepřišel....
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
poky74 avatar 28.5.2009 18:03 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
pingnu, ping :)
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
poky74 avatar 28.5.2009 22:33 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
po restartu obou zařízrní žádná reakce, pořát stejná chyba...
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
poky74 avatar 28.5.2009 17:58 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
ps. soubor /etc/my.cnf neexistuje...
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 29.5.2009 10:26 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?

Pošli ješte z mypc výstup těhle dvou příkazů:

netstat -anpA inet |grep LIST
ps -ef |grep mysql

Zkus prohledat system, jestli tem my.cnf není ještě někde jinde..

PS: co máš za distribuci?

Fordem tam, vlakem zpátky :-)
poky74 avatar 29.5.2009 14:42 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Na obou strojích je debian lenny...

MyPc:~# netstat -anpA inet |grep LIST
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      4251/portmap
tcp        0      0 0.0.0.0:4949            0.0.0.0:*               LISTEN      5376/munin-node
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4567/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      4733/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5127/exim4
tcp        0      0 0.0.0.0:7741            0.0.0.0:*               LISTEN      5143/lisa
tcp        0      0 0.0.0.0:33091           0.0.0.0:*               LISTEN      4262/rpc.statd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      4653/mysqld
MyPc:~# ps -ef |grep mysql
root      4614     1  0 May28 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql     4653  4614  0 May28 ?        00:00:23 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root      4655  4614  0 May28 ?        00:00:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
root     13581 13511  0 14:41 pts/1    00:00:00 grep mysql
MyPc:~#

Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 29.5.2009 16:07 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?

Tohle:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      4653/mysqld

říká, že mysql poslouchá jenom na loopbacku, tj. není dostupné ze sítě a to je ten problém.

Je tedy potřeba najít, nebo vytvořit jmenované my.cnf a změnit tak konfiguraci MySQL, viz ten odkaz co jsem uváděl a dokumentaci MySQL.

Pokud se nepletu my.cnf by mělo být buďto v /etc nebo v datadir tedy v /var/lib/mysql.

Fordem tam, vlakem zpátky :-)
poky74 avatar 29.5.2009 16:58 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
ok, našel jsem ho a řádek bind-address = 127.0.0.1 jsem přepsal na bind-address = 192.168.0.1

po restartu mysql to píše následující:

Warning: mysql_connect() [function.mysql-connect]: Host 'baium.serverovna.org' is not allowed to connect to this MySQL server in /var/www/sw1/pripojeni.php on line 19

Dočetl jsem se k tomu jen to že se mají nastavit práva, nic víc... Mám hodně slabou angličtinu takže je pro mě manuál docela problém...
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 29.5.2009 18:38 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?

MySQL už není můj šálek čaje snad trochu pomůže následující

http://www.linuxsoft.cz/mysql/

Ještě doporučím Webmin, který obsahuje slušný modul na správu MySQL (a spousty ostatních věcí)

Fordem tam, vlakem zpátky :-)
poky74 avatar 29.5.2009 19:52 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Skusil jsem webmin, v nastavení mysql jsem tedy přidal v sekci OPRÁVNĚNÍ HOSTITELŮ:

Databáze Hostitelé Oprávnění Jakákoliv 192.168.0.1 Všichni Jakákoliv 192.168.0.2 Všichni Jakákoliv MyPc Všichni Jakákoliv MyPc.serverovna.org Všichni Jakákoliv baium Všichni Jakákoliv baium.serverovna.org Všichni

Po restartu mysql žádná změna, pořát píše "Warning: mysql_connect() [function.mysql-connect]: Host 'baium.serverovna.org' is not allowed to connect to this MySQL server in /var/www/sw1/pripojeni.php on line 19".

V tom seriálu na linuxsoftu jsem nic přínosného nenašel (popisuje se tam pouze oprávnění uživatelů, což mi je k prd, jelikož se k databázi ani nepřipojím...)
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Medved09 avatar 29.5.2009 20:29 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?

Jak říkám, tohle už není nic pro mě, doporučuju vznést tenhle dotaz v databázové poradně, tam budou lidi kteří v tom mají jasno..

Fordem tam, vlakem zpátky :-)
poky74 avatar 29.5.2009 20:54 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Díky za tip a za strávený čas :)
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
28.5.2009 12:16 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jmené serverů a napojení na db?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nepřiřazujte jména IP adresám lokální smyčky (127.0.0.1), ta má standardní název localhost. Přiřaďte jméno "skutečné" IP adrese toho počítače. Ale to je jen poznámka na okraj, neřeší to váš problém.

Soubor /etc/hosts slouží pro daný počítač jako náhrada DNS dotazů. Tj. pokud počítač muj.example.com hledá nějaké jméno počítače (třeba pc1.example.com), podívá se nejprve do svého /etc/hosts, zda tam nemá záznam pro pc1.example.com. Pokud ano, použije příslušnou IP adresu, pokud záznam nenajde, zeptá se přes DNS. Vůbec přitom nezáleží, co má v /etc/hosts počítač pc1.example.com.

Občas se používá takové nastavení, že různé počítače mají v /etc/hosts pro stejný název různé IP adresy. Třeba na svém vývojovém počítači můžete mít nastaven záznam databaze na počítač s testovací databází (třeba ten samý, jako vývojový), a na ostrém serveru bude záznam databaze, který bude směřovat na úplně jiný server, na server s ostrými daty. Ve skriptu nebo konfiguraci pak pořád používáte jméno databaze, ale každý počítač pod ním vidí něco jiného.

Pokud máte malou síť (2 počítače) a nechcete zprovozňovat DNS server, vytvořte si jeden soubor /etc/hosts a ten nakopírujte na oba dva počítače.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.