Strona 1 z 1

Serwer MySQL skonfigurowany na localhost - jak go uzewnętrznić?

: 15 maja 2010, 13:25
autor: sq2wkj
Witam.
Mam taki problem...
Dwa komputery na jednym z nich uruchomiony serwer Apache2 i skonfigurowany tak, że jest widoczny w sieci na zewnątrz (Internet).
Drugi komputer - serwer baz danych MySQL zainstalowany poleceniem:

Kod: Zaznacz cały

apt-get install mysql-server-5.0
skonfigurowany na localhost (innej możliwości nie było przynajmniej w instalatorze podawałem tylko hasło roota).
Moje pytanie brzmi, jak mogę zrobić aby serwer mysql był również widoczny w sieci internet na standardowym porcie 3306?
Serwer www przy użyciu aplikacji w php ma się z łączyć z serwerem mysql, ale do mysql nie mam przypisanego adresu IP.
Proszę o pomoc, jeżeli był już taki temat to przepraszam ale nie znalazłem. Proszę ewentualnie o odnośnik do niego.
Pozdrawiam.
Piotr

: 15 maja 2010, 14:42
autor: grzesiek
W pliku konfiguracyjnym zmień opcję bind-address.

: 15 maja 2010, 22:12
autor: sq2wkj
Po wpisaniu adresu IP zewnętrznego dla bind-address, serwer bazy danych nie startuje. A to wyciąg z syslogda:

Kod: Zaznacz cały

May 15 22:14:01 debian /etc/init.d/mysql[6734]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
May 15 22:14:01 debian /etc/init.d/mysql[6734]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
May 15 22:14:01 debian /etc/init.d/mysql[6734]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
May 15 22:14:01 debian /etc/init.d/mysql[6734]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
May 15 22:14:01 debian /etc/init.d/mysql[6734]:

: 15 maja 2010, 23:01
autor: grzesiek
Sprawdź tak:

Kod: Zaznacz cały

bind-address = 0.0.0.0
i zobacz; http://www.howtoforge.com/forums/archiv ... t-698.html

: 15 maja 2010, 23:48
autor: kaworu
Ewentualnie postaw # przed bind-address, szczerze mówiąc nie wiem czy to zadziała bo nigdy nie miałem potrzeby wystawiać mysql na świat.

: 16 maja 2010, 11:17
autor: sq2wkj
Zarówno

Kod: Zaznacz cały

bind-address = 0.0.0.0
jak i # przed bind-address działają tak samo.

Oto fragment wydruku netstat dotyczący serwera MySQL:

Kod: Zaznacz cały

debian:~# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN
Przykładowo stawiam sobie CMS Joomla na serwerze www, przy stronie konfiguracji bazy danych podaję adres IP serwera bazy danych, nazwę użytkownika i hasło oraz nazwę bazy danych - wszystko stworzone, a użytkownik w host ma % - czyli dowolny, a połączyć się nie można?
jakieś sugestie?

: 16 maja 2010, 13:24
autor: grzesiek
Serwer WWW blokuje 3306?

: 16 maja 2010, 14:20
autor: sq2wkj
A jak to sprawdzić?

W porządku już, do zamknięcia dziękuję za pomoc!
Dodatkowo do tego co podpowiadali koledzy należy:
zmienić granty i zresetować serwer bazy danych...

Kod: Zaznacz cały

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
> IDENTIFIED BY 'haslo dla zdalnego roota' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
Pozdrawiam