MySQL server csak local usert enged be

Fórumok

Hi!

Adott egy gépen egy XAMPP (ilyen apache-mysql-php egybe izé). phpmyadminnal állítgatom.
A problémám a következő: ha a mysql usernek a host mezőbe nem localhost kerül, hanem "%" (any host) vagy egy IP-cím, a server sehonnan sem engedi be, localhostról sem. Fogalmam sincs mi a baja, pedig vagy 20x átnéztem a konfigfájlt...

a my.cnf így néz ki:

---

[client]
port = 3306
socket = /opt/lampp/var/mysql/mysql.sock

[mysqld]
port = 3306
socket = /opt/lampp/var/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

server-id = 1

skip-innodb
innodb_data_home_dir = /opt/lampp/var/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /opt/lampp/var/mysql/
innodb_log_arch_dir = /opt/lampp/var/mysql/
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

---

Hozzászólások

A mysql-hez akár weblapon keresztül is lokálisan kapcsolódsz vagy tévednék?

--
Az élet harc. Délelőtt az éhséggel, délután az álmossággal.

nem vagyok egy MySQL guru, de nálam asszem a GRANT option beállítása az userhez segített ezen a bajon.

A mysql alapból csak localhoston, socketen keresztül engedélyezi a kommunikációt. Ennek biztonsági okai vannak.

Ha csak arra szeretnéd használni, hogy kiszolgálja a mellette futó webszerveren lévő php-s kéréseket, akkor nem is szabad mást engedélyezni.
Ha mindenképpen olyat szeretnél, hogy távolról el lehessen érni, akkor
az /etc/mysql/my.cnf-ben a skip-networking -ot kell beállítani.
Ezek után kell egy user, aki kap egy ilyet:
grant all privileges on mydb@localhost to myuser@myhost.hu identified by "mypasswd"

ekkor a myuser a myhost.hu-ról el tudja érni a mydb adatbázist.

Ami elől menekülnek, az után szaladnak.

A (kicommentezett) skip-networking mellé commentben az van hogy "Don't listen to TCP at all" -- biztos hogy ez kell nekem??

Ha jól értem, a skip-networking átállításán kívül még a user@klienshost nevű felhasználónak GRANT joga kell legyen az adott adatbázisra -- ezt beállítottam, reloadoltam is az SQL servert, mégse megy. Se skip-networkinggel, se nélküle (skip-networkinggel cseppet sem meglepő módon nmapban sem látszik az SQL server portja)

Ja amit télleg kihagytam: a gépen nincs tűzfal, belhálóról megy, és onnan is kéne elérni.

Akkor kellhet neked ilyesmi, ha a kliens, aki lekérdezi a mysql szervert, az nem ugyanazon a gépen van, mint amin a mysql szerver fut.

Szóval a skip-networking sornak nem szabad kommentezve lennie.
/etc/init.d/mysql restart
Ez után már látnod kell nmappal kívülről, hogy a géped 3306-os portja nyitva van.

Ami elől menekülnek, az után szaladnak.

Igen, így kell működnie.
ki kell kommentezni, ekkor van engedélyezve, hogy más gépekről is elérhető legyen a mysql szerver TCP/IP-n keresztül.
Ha ez megvan, akkor már csak egy megfelelő jogosultsággal rendelkező mysql felhasználó kell, és kész is vagy.
mysql> grant all privileges on dbname.* to user@host_ahonnan_elerheti.hu identified by "jelszo";
ezutan egy /etc/init.d/mysql restart es mar mennie kell.
ha nem megy, a /var/log/mysql.log-ban vannak infok, h miert.

Ami elől menekülnek, az után szaladnak.

bind-address-szel már a
'mysql -u userneve -p -h serverhost -D adatbazis' parancsra beengedi. Viszont se a 'mysqlaccess -u userneve -p -H serverhost -d adatbazis', se a mythtv nem mehet be...
A mysqlaccess ezt írja:
---
Sorry,
An error occured when trying to connect to the database
with the grant-tables:
* Maybe YOU do not have READ-access to this database?
* If you used the -U option, you may have supplied an invalid username?
for the superuser?
* If you used the -U option, it may be possible you have to supply
a superuser-password to, with the -P option?
* If you used the -P option, you may have supplied an invalid password?
---

A logban erre ez jelenik meg:
"060304 15:52:45 1 Connect Access denied for user 'kliensgepi-helyijuzerneve-kozenincsazsqlhez'@'klienshost' (using password: NO)"
Biztos rossz a syntax, de a mysqlacces helpje alapján így kellett volna megadni... És a mysqlaccess kérte is a jelszót, viszont a logban azt írja, NEM használta! A kliensgépen is 5.0.18-as mysql van.

A mythtv akcióira (kvasok error a kliensgép stdoutjába, Couldn't connect database meg ilyesmi) semmi reakció nem jelenik meg a logban, szal valszleg itt vmit a fordításnál rontottam el, ez nem érdekel.