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
---
- 1163 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
nem vagyok egy MySQL guru, de nálam asszem a GRANT option beállítása az userhez segített ezen a bajon.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
Bocs, lehet h a szintaxot elírtam. Fontos a mysql verzió is.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
Persze ha van tűzfalad, ott sem árt engedélyezni a portot.
Legjobb, ha csak arról a hostról engeded elérni, ahonnan kapcsolódni szeretnél.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Először írd meg, hogy milyen mysql verziót használsz.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
5.0.18
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
namost nálam ha ki van commentezve (#skip-networking), akkor látszik a 3306-os port nyitva, ha nincs kicommentezve (simán skip-networking), akkor nem.
És igen, nekem olyan kell, hogy a kliens másik gépen van, mint a server.
- A hozzászóláshoz be kell jelentkezni
#skip-networking[/b]
és még a bind-address is játszhat. (pl = * -gal prbáld ki)
Mi a hibaüzenet, és mit ír ki a log?
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
sosem használtam a mysqaccesst, de:
mysqlaccess:
Check user access rights.
Ha mysql -u userneve -p -h serverhost -D adatbazis
megy, akkor mi a probléma?
Nem az volt a cél, hogy messziről lehessen kapcsolódni a mysql szerverhez?
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
Akkor rendben, néha nem árt mant is olvasni, megesküdem volna rá hogy az access a kliens (ms rulz) :) Köszi mindent!
- A hozzászóláshoz be kell jelentkezni