PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : my.cnf wird ignoriert



michel_vaclav
29-04-2012, 16:51
Hallo,

auf einem openSUSE 12.1 habe ich aus den Standardpaketen mysql installiert und eine Tabelle mit Daten befüllt.
Nun wollte ich die Performance mit "tuning-primer.sh" prüfen und an ein paar Einstellungen experimentieren, die dort vorgeschlagen werden. Aber leider hilft es nichts, die Einträge in /etc/my.cnf mit anschließendem /etc/init.d/mysqld restart" werden nicht übernommen. Offensichtlich wird /etc/my.cnf komplett ignoriert.

Wo muss man bei openSUSE dann die Einstellungen vornehmen?

Danke

michel_vaclav

undefined
30-04-2012, 11:42
!!!!! VORSICHT !!!!!
Mit der my.cnf zu Arbeiten ist eine Gefährliche Angelegenheit!
MySQL macht keinen Unterschied von wo ein USER auf die Datenbank zugreifen will!
Im klartext - Ein offener SQL Port macht es Angreifern leicht wenn er den Benutzer Namen errät. Die my.cnf macht bei falscher Konfiguration keinen Unterschied ob die Anfrage Lokal oder aus dem Netz kommt!
Du solltest also Unbedingt testen ob ein Zugriff von außen gesperrt ist!

Zu deiner Frage...
1) Berechtigungen müssen stimmen chmod 0600 ~/.my.cnf
2 ) Beispiel


## Die Gruppen Definition ist gleich Programm das Anfragt!
[mysql]
host=localhost
user=muster
password=456sfdasvv125xa654
database=mydatabase
connect_timeout=2


PS: Als Benutzer root die my.cnf zu verwenden ist ein absolutes nogo

michel_vaclav
06-05-2012, 10:34
Sorry, dass ich mich solange nicht gemeldet habe, aber ich habe nach der ersten Antwort keine email bekommen. Muss an den persönlichen Einstellungen liegen. Damit beschäftige ich mich später.

Zu Deinen Hinweisen:
- Zunächst mal läuft die Mysql-Datenbank mit den Einstellungen, wie sie openSUSE konfiguriert hat. Ich habe bis jetzt diesbezüglich nichts an der /etc/my.cnf geändert. Die Zugriffsrechte sind durch die Datenbank selbst geregelt, ich habe einen Host und einen User hinzugefügt, um auf meine Wetterdaten von einem anderen Rechner aus zugreifen zu können. Es handelt sich um keine Daten, die nicht auch die Öffentlichkeit sehen dürfte. Damit hätte ich kein Problem.
Was anderes ist, wenn mit den Standard-Einstellungen jemand die Datenbank für was auch immer missbrauchen könnte. Da ich aber hinter einem Hardware-Router sitze, sehe ich hier ebenfalls zunächst mal kein Problem.

zu 1.) Es gibt auf dem Datenbankrechner genau eine Datei namens my.cnf, nämlich die unter /etc. Sonst keine. Diese wiederum hat folgende Berechtigung:
-rw-r----- 1 root mysql 6314 28. Apr 11:15 my.cnf
Auch wenn ich die Rechte ändere auf:

-rw------- 1 root mysql 6314 28. Apr 11:15 my.cnf ergibt das keine Änderung, egal was ich in /etc/my.cnf einstelle, tuning-primer.sh ist der Meinung, dass keine Einstellungen verändert werden.

michel_vaclav

PS.: Ich versuche, die langsamsten Queries zu finden und habe in diversen Hinweisen gelesen, dass man das über "log-slow-queries = /var/log/mysql/log-slow-queries.log" in der /etc/my.cnf macht. Allerdings meint tuning-primer.sh immer:
SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 0 out of 402 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine

undefined
06-05-2012, 15:35
Es handelt sich um keine Daten, die nicht auch die Öffentlichkeit sehen dürfte. Damit hätte ich kein Problem.
Darum ging es nicht bei meinem Hinweis..
Es geht darum das ich über mysql temp Schadhaften Code in das System einschleusen kann sobald ich schreibenden Datenbank Zugriff habe. ;)

Deiner jetzigen Beschreibung nach hast du Konfigurations Probleme mit dem Datenbankzugriff und nicht Direkt mit der my.cnf

Du kannst Zugriffe über die mysql.log im /var/lib/mysql Debuggen.
Und deine Verbindungen auf deinem lokalen System mit mysql testen.

Also z.B.
mysql -f 127.0.01 -D meindb -u benutzer -p

Außerdem Prüfe ob deine Firewall den port frei gegeben hat

michel_vaclav
06-05-2012, 17:47
Außerdem Prüfe ob deine Firewall den port frei gegeben hat

nmap sagt (von außen): alles dicht bis auf Port 80.

Den Rest muss ich mir später anschauen.

Danke soweit

michel_vaclav

Edit: /var/lib/mysql/mysql.log gibt es schon mal gar nicht. Nur /var/log/mysql/mysqld.log, das ist aber vermutlich das Logfile vom Daemon.