PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mysql-Server neu aufgesetzt - trotzdem fehler



sim4000
25.09.2006, 19:17
Nabend.

Ich hab mal ein wenig zu viel mit meinem Mysql-Server gespielt, und aus versehen die datenbank mysql gelöscht. :brav: Ergo hab ich jetzt keine Rechte mehr auf den Server.

Nun hab ich den Server komplett gekillt und neu aufgesetzt.
Bringt aber nix. Kommt immer noch

sim1:/home/sim4000/Desktop/karamba # rcmysql start
Starting service MySQL failed


Kann mir mal jemand sagen, wo die Daten für die Datenbanken liegen? Das ich die löschen oder durch einen Backup ersetzen kann. whereis hat nichts gebracht.

Mfg, sim4000.

Lumpi
25.09.2006, 19:29
Hallo
Starting mysqld daemon with databases from /var/mysql

Gruß Lumpi

sim4000
25.09.2006, 19:38
Das Verzeichnis existiert bei mir nicht. Und was verändert hab ich auch nicht. Alles neu aufgesetzt.


SuSE Linux 10.1
Mysql 5.0.18

Mfg, sim4000.

hwj
25.09.2006, 23:02
Lumpi meint, Du sollst im Logfile (z.B. "grep mysql /var/log/*") mal schauen, wo Deine Datenbank-Files liegen. Das würde dann Deine Frage beantworten, welche Dateien Du wiederherstellen mußt.

Heiko

theton
25.09.2006, 23:26
Im uebrigen kann man die Default-mysql-DB (also mit User root@localhost ohne Passwort drin) mit dem mysql_install_db-Skript aus den Sources wiederherstellen.

Lumpi
25.09.2006, 23:36
Lumpi meint, Du sollst im Logfile (z.B. "grep mysql /var/log/*") mal schauen, wo Deine Datenbank-Files liegen. Das würde dann Deine Frage beantworten, welche Dateien Du wiederherstellen mußt.

HeikoHallo,

So, meine ich das? *grins*

Ne ich meine, das "dieser" mysql-dämon seine Datenbak aus dem Verzeichnis
/var/mysql holt. ;)

Das Problem von Sim4000 ist, das der Dienst erst gar nicht startet.

Gruß Lumpi

sim4000
26.09.2006, 05:54
Das Problem von Sim4000 ist, das der Dienst erst gar nicht startet.
Bingo. Dadurch das ich die db mysql gelöscht habe, hab ich mich erst ausgesperrt, und dann hat sich der Server aus sicherheitsgründen gesperrt. und solang ich nicht die Dateien wo die Daten zu den Datenbanken finde kann ich den Server so oft weider aufsetzen wie ich will. Bringt nichts.
Aber ich schau mal in /var/log/ ob da was steht was hilft.

Mfg, sim4000.

//edit
Mysqld.log
060924 00:17:19 mysqld ended

060924 00:19:43 mysqld started
060924 0:19:47 InnoDB: Started; log sequence number 0 43655
060924 0:19:47 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
060924 2:36:22 [Note] /usr/sbin/mysqld: Normal shutdown

060924 2:36:22 InnoDB: Starting shutdown...
060924 2:36:24 InnoDB: Shutdown completed; log sequence number 0 43655
060924 2:36:24 [Note] /usr/sbin/mysqld: Shutdown complete

060924 02:36:25 mysqld ended

060924 13:24:08 mysqld started
060924 13:24:12 InnoDB: Started; log sequence number 0 43655
060924 13:24:12 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
060924 13:35:47 [Note] /usr/sbin/mysqld: Normal shutdown

060924 13:35:48 InnoDB: Starting shutdown...
060924 13:35:50 InnoDB: Shutdown completed; log sequence number 0 43655
060924 13:35:50 [Note] /usr/sbin/mysqld: Shutdown complete

060924 13:35:50 mysqld ended

060924 17:08:30 mysqld started
060924 17:08:34 InnoDB: Started; log sequence number 0 43655
060924 17:08:34 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
060924 17:10:50 [Note] /usr/sbin/mysqld: Normal shutdown

060924 17:10:50 InnoDB: Starting shutdown...
060924 17:10:52 InnoDB: Shutdown completed; log sequence number 0 43655
060924 17:10:52 [Note] /usr/sbin/mysqld: Shutdown complete

060924 17:10:53 mysqld ended

060924 18:49:25 mysqld started
060924 18:49:29 InnoDB: Started; log sequence number 0 43655
060924 18:49:29 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
060924 18:57:16 [Note] /usr/sbin/mysqld: Normal shutdown

060924 18:57:16 InnoDB: Starting shutdown...
060924 18:57:19 InnoDB: Shutdown completed; log sequence number 0 43655
060924 18:57:19 [Note] /usr/sbin/mysqld: Shutdown complete

060924 18:57:19 mysqld ended

060924 20:39:24 mysqld started
060924 20:39:27 InnoDB: Started; log sequence number 0 43655
060924 20:39:27 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
060924 21:45:20 [Note] /usr/sbin/mysqld: Normal shutdown

060924 21:45:21 InnoDB: Starting shutdown...
060924 21:45:25 mysqld ended

060924 22:30:10 mysqld started
060924 22:30:11 InnoDB: Started; log sequence number 0 43665
060924 22:30:11 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
060924 22:30:11 mysqld ended

060924 23:03:46 mysqld started
060924 23:03:47 InnoDB: Started; log sequence number 0 43665
060924 23:03:47 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
060924 23:03:47 mysqld ended

060925 00:53:18 mysqld started
060925 0:53:19 InnoDB: Started; log sequence number 0 43665
060925 0:53:19 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
060925 00:53:19 mysqld ended

060925 09:54:52 mysqld started
060925 9:54:53 InnoDB: Started; log sequence number 0 43665
060925 9:54:53 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
060925 09:54:53 mysqld ended


Er sagt das die Tabelle fehlt, aber leider nicht wo sie lag....
Mfg, sim4000.

knumskull
26.09.2006, 06:11
Im uebrigen kann man die Default-mysql-DB (also mit User root@localhost ohne Passwort drin) mit dem mysql_install_db-Skript aus den Sources wiederherstellen.

haste das schon ausprobiert?

theton
26.09.2006, 06:48
Dazu muss er auch das datadir kennen, das im uebrigen der my.cnf zu entnehmen ist, die normalerweise unter /etc oder /etc/mysql liegt.

hwj
26.09.2006, 08:57
Hm, heimlich still und leise hat er den log in seinen letzten Beitrag rein-editiert ...

Ich find' da auch nix drin. Wenn Du die "normale" Datenbank-Engine von mysql verwendet hast, müßte ein
find / -name "*.MYI" -print
oder:
find / -name datenbankname -print reichen, um eines der noch vorhandenen Datenbank-Files zu finden; Datenbanknamen sind bei mysql Verzeichnisse wo die Dateien für die Tabellen liegen.

Dort mußt Du dann das Verzeichnis mysql wiederherstellen.

Heiko

sim4000
26.09.2006, 14:45
Dort mußt Du dann das Verzeichnis mysql wiederherstellen.
Hab ich getut. :)
Bringt aber nix. Kommt immer noch failed.

@theton
könntest du das mit dem install_script noch mal besser erleutern? Hab ich noch nicht ganz verstanden.

Desweiteren:
Die Daten müssen nicht überleben.
Ich möchte nur wieder einen funtionfähigen sql-server haben. Brauch ich in der Schule. Sonst muss ich wieder mit Windows arbeiten. ;(

Mfg, sim4000.

theton
26.09.2006, 19:12
Du findest in den Sources von MySQL (solltest du einfach die gleiche Version bei dev.mysql.com downloaden, die du auch installiert hast) im Verzeichnis scripts eine Datei mysql_install_db. Dieses Skript kann genutzt werden um die beiden Default-Datenbanken mysql und test zu erstellen.


cd /mein/mysql/source/verzeichnis
scripts/mysql_install_db --user=<mysqluser> --dadadir=<mysql_datenverzeichnis>

Welches dein datadir ist, solltest du eigentlich der Datei /etc/mysql/my.cnf entnehmen koennen. Selbiges gilt fuer den User. Danach musst du einfach die DB neu starten und mit mysqladmin das root-Passwort neu setzen

mysqladmin -u root password 'meinrootpw'
und schon solltest du dich wieder einloggen koennen.

sim4000
26.09.2006, 19:54
sim1:/etc # mysql_install_db
Installing all prepared tables
Fill help tables
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h sim1.BLECHNET password 'new-password'
See the manual for more instructions.

NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run
the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com
sim1:/etc # rcmysql start
Starting service MySQL failed


Klappt immer noch nicht. Das gibts doch nicht.
Mit deinem Beispiel klappt es nicht, da er "--dadadir" nicht kennt.

Mfg, sim4000.

//edit
Funzt. Hab die alten datenbanken aus /var/lib/mysql gelöscht, und dann das script ausgeführt.
Mal wieder ein herzliches Danke schön an theton und alle anderen die geholfen haben.

Lumpi
26.09.2006, 20:13
Mit deinem Beispiel klappt es nicht, da er "--dadadir" nicht kennt.Hallo,

da war der Fehlerteufel :devil: am Werk, versuch mal mit
"--datadir"

Gruß Lumpi

sim4000
26.09.2006, 20:20
gut jetzt hat sichs erledigt.
komplettcrash fertig. Sagt mal wie kann man in der Konsole denn den zeilenumbruch ausschalten? Wenn ich

mysql> select * from user;
eingebe, dann kommen die Tabellen abgebrochen. Wie kann man das in der Konsole ausschalten?

Mfg, sim4000.

grey
26.09.2006, 20:53
gut jetzt hat sichs erledigt.
komplettcrash fertig. Sagt mal wie kann man in der Konsole denn den zeilenumbruch ausschalten? Wenn ich

mysql> select * from user;
eingebe, dann kommen die Tabellen abgebrochen. Wie kann man das in der Konsole ausschalten?

Mfg, sim4000.
Indem du den passenden Pager deiner Wahl angibst ...


mysql> \P less
PAGER set to less
mysql>
Versuch es doch mal mit ...
mysql> help ... das hat mich auch schon viele Mal gehilft ... ;)

sim4000
26.09.2006, 21:20
mysql> help
bringt zu diesem pager nichts. Nur wie man ihn an und ausschaltet.
Googlen hat auch nichts gebracht. Könnest du bitte mal etwas erläutern was es für pager gibt?

Mfg, sim4000.

//edit
Ein pager zeit die Daten doch nur Seitenweise.
Aber es soll doch nur der Zeilenumbruch unterdrückt werden.

grey
26.09.2006, 23:39
mysql> help
bringt zu diesem pager nichts. Nur wie man ihn an und ausschaltet.
Googlen hat auch nichts gebracht. Könnest du bitte mal etwas erläutern was es für pager gibt?
Nee, mysql> help bringt zu dem Pager wirklich nix, da der Pager kein Bestandteil vom mysql-client ist, sondern ein externes Programm. Wenn du Infos über den Pager willst, dann mußt du schon die dazugehörende man-Page bemühen. less bringt in der default-config nix, aber mit der passenden Option, macht er genau das, was du möchtest und hat den Vorteil, daß du im Datensatz vor und zurück scrollen kannst.

Wenn du Google genutzt hast, dann solltest du das noch ein wenig üben.
http://www.google.de/search?q=pager+mysql&ie=UTF-8&oe=UTF-8


//edit
Ein pager zeit die Daten doch nur Seitenweise.
Aber es soll doch nur der Zeilenumbruch unterdrückt werden.
OK, ich denk mal für dich ... :think:

Also gaaannnz langsam und zum mitschreiben.
Wenn du beim Snooker den zu spielenden Ball nicht direkt anspielen kannst, hast du ein Problem. Beim myslq-Client ist es nicht möglich den Zeilenumbruch direkt zu verhindern.
Daraus folgt, und jetzt bin ich wieder beim Snooker, du mußt versuchen, dein Ziel über die Bande zu erreichen. Im vorliegenden Fall, mysql-Client, bleibt dir nichts anderes übrig, als ein externes Tool zu nutzen, um dein Ziel zu erreichen. Und genau hier kommt der Pager zum Einsatz.

Für alles Weitere: siehe oben ...

sim4000
27.09.2006, 19:49
Nabend.

Also ich hab den Zeilenumbruch jetzt mit

mysql> pager less -S
wegbekommen. Nur wenn ich den Pager verlasse, dann verschwindet auch die Tabellenausgabe. Wie schaffe ich es, das sie dort stehen bleibt? Sonst bringen mir ja die abfragen nichts.

Mfg, sim4000.

//edit
Noch ne Frage: Kann man die einstellungen für Pager irgendwie speichern? Ich muss jetzt bei jedem start von mysql den pager neu einrichten.

grey
27.09.2006, 22:37
[...] Nur wenn ich den Pager verlasse, dann verschwindet auch die Tabellenausgabe. Wie schaffe ich es, das sie dort stehen bleibt? Sonst bringen mir ja die abfragen nichts.Mmh, ich kenne keine Möglichkeit. Evtl. kann dir hier jemand anders helfen.
Ich persönlich nutze, für solche Fälle, einfach mehrere Fenster (Screenshoot im Anhang ... falls es dich interessiert)


Noch ne Frage: Kann man die einstellungen für Pager irgendwie speichern? Ich muss jetzt bei jedem start von mysql den pager neu einrichten.Das erreichst du, indem du die Optionen in deine .my.cnf einträgst. Wie das funktioniert, findest du hier (http://dev.mysql.com/doc/refman/5.1/de/option-files.html)

sim4000
28.09.2006, 22:11
http://www.unixboard.de/vb3/attachment.php?attachmentid=1945&d=1159388965

Wie hast du das denn gemacht? Is ja echt geil gemacht.
Könntest du mir mal ein HowTo geben? Oder vielleicht die config?

Mfg, sim4000.

//edit
Achso.
Du hast einfach less in einem Fenster gestartet, und in dem anderen die eingabe. und die ausgaben exportierst du in eine datei.
Wie machst du das mit dem aktualisieren?


Das erreichst du, indem du die Optionen in deine .my.cnf einträgst. Wie das funktioniert, findest du hier
Wo liegt die?

theton
29.09.2006, 00:46
Die my.cnf liegt meist direkt unter /etc oder unter /etc/mysql, je nachdem wie die MySQL installiert ist.

grey
29.09.2006, 01:56
Die my.cnf liegt meist direkt unter /etc oder unter /etc/mysql, je nachdem wie die MySQL installiert ist. Zusätzlich kann man auch die persönlichen Einstellungen im File ~/.my.cnf definieren.

@sim4000: Es sind einfach nur drei Consolen. In einer läuft der Client (Pager ist auf cat >> /tmp/query.log eingestellt). In der zweiten arbeitet most im Tail-Mode und die dritte inst zur freien Verwendung (man, source ... etc.)

sim4000
29.09.2006, 17:54
Ich hab jetzt ne lösung gefunden.

Ich hab die mysql-ausgabe mit
# mysql -H beim Login in den HTML-Modus umgeschaltet, und die Ausgaben denn mit
mysql> tee /pfad/ausgabe.html in eine Html-Datei exportiert die dann mit einem include in eine php-datei eingebunden ist, wo die syles eingestellt sind. Jetzt sieht die ausgabe genau so aus wie meine Konsole. Die PHP-Seite scrollt automatisch nach dem aktualisieren runter. sodass ich nicht mehr scrollen muss.

Vielen Dank noch mal an theton, grey, lumpi und alle anderen.
Mfg, sim4000.

//edit
So. Jetzt werden auch die optionen wie html-format und tee-export automatisch beim anmelden gesetzt. *freu*
Greys Link als Anleitung benutzt.