• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Massive Probleme bei der Nutzung von Leopard als Webdev-Plattform

ulf

Alkmene
Registriert
18.07.07
Beiträge
32
Sprich

Code:
./bin/mysqladmin -u root -p
?

Geht auch nicht, ich krieg wieder das help geliefert.
 

arnekolja

Bismarckapfel
Registriert
25.02.08
Beiträge
141
Hallo Ihr zwei,

ich klink mich nun auch mal ein, da ich mit Ulf zusammen am Rumprobieren bin und seltsamerweise das Problem haargenau wie er auch habe. Das witzige ist, dass unsere Systeme/Installationen absolut verschieden voneinander sind und Ulf es ja auch schon mit cleanen OSX-Installationen probiert hat. Von der Warte her ist es _überaus_ merkwürdig, dass es bei uns auf keinem von 3 oder 4 Rechnern klappt, bei allen anderen aber scheinbar schon :)

Was ich soweit jetzt zurückverfolgt habe: Dieses mysql_install_db-Script dürfte imho das sein, welches vom Installer auch ausgeführt wird, um die initialen Daten für die Datenbank "mysql" einzutragen. Denn dieses Script importiert die .sql-Dateien aus dem Verzeichnis mysql/share.

Wenn ich nun diese Daten versuche in die Datenbank "mysql" zu importieren bekomme ich genau den selben Fehler wie Ulf oben ("Duplicate entry 'localhost-' for key 1"), und zwar beim Import der Datei mysql_system_tables_data.sql. Vom Dateinamen her ist's dann wohl auch logisch, dass der Benutzer "root" gar nicht erst existiert und wir sein Passwort demnach auch nicht setzen können. Da diese SQL-Datei schon bei Zeile 21 abbricht, ist die user-Tabelle schlicht leer und wir _haben_ gar keinen Benutzer, dessen Passwort wir ändern könnten.

Die Frage ist nun hauptsächlich, woran das liegt, bzw. warum es bei Dir scheinbar geht, bei uns aber nicht. Grundsätzlich könnten wir auch einfach die MyISAM-Dateien für die Grunddatenbank aus einer cleanen Linux-Installation kopieren oder den "root" manuell anlegen, indem wir eine Zeile manuell in die user-Tabelle einfügen und dann flush privileges ausführen. Aber das ist ja nicht Sinn der Sache, vor Allem geht es ja darum herauszufinden, was denn nun hier schief läuft :)

Um auszuschliessen, dass es doppelte Daten gibt, weil der Installer die Daten vor meinem Import-Versuch schon angelegt hat, hab ich sogar mal die mysql-Datenbank "gedropped" und neu angelegt, um dann die Daten sauber zu importieren, aber: gleicher Fehler.

Summa summarum also: Was machst Du anders als wir, bzw. was ist mit diesem Paket los?
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Hm Ich muss da passen. Ok, das einzige was ich wohl noch anders hab, ist eine my.cfg unter /etc. Ich habe die nun auch einmal gelöscht. Hab nun einmal die DB auch entfernt (sym link und das Verzeichnis mysql-5.51a....), hab auch die Pakete unter "/Library//Receipts" entfernt und installiere nun noch einmal alles.
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
So, fertig. Läuft einwandfrei. Ich habe nur das pkg installiert und danach mit "./mysql.server start" dem Server gestartet. Danach konnte ich das Passwort mit "./bin/mysqladmin -u root password Geheim" ändern.
Nach der Installation waren die Dateien sehen so die user.* Dateien aus:
-rw-rw---- 1 mysql wheel 224 25 Feb 01:50 user.MYD
-rw-rw---- 1 mysql wheel 2048 25 Feb 01:50 user.MYI
-rw-rw---- 1 mysql wheel 10330 25 Feb 01:50 user.frm

Wie sieht es bei euch mit den Rechten im Verzeichnissystem aus? Habt ihr da was geändert? Bei mir ist halt alles unter 10.4.11.
Alternativ könnte man mal das tar Paket von der Webseite auspacken. Da muss man das install_db Script ausführen.
 

arnekolja

Bismarckapfel
Registriert
25.02.08
Beiträge
141
So, ich mach es nun auch mal Schritt für Schritt.

1. Alles was irgendwie mit MySQL zusammenhängt gelöscht.
2. Doppelklick mysql-5.0.51a-osx10.4-i686.dmg
3. Doppelklick mysql-5.0.51a-osx10.4-i686.pkg
4. Wizard durchgegangen und Passwort eingegeben -> Installation erfolgreich abgeschlossen
5. Installationsprotokoll mal zu Debug-Zwecken angezeigt:

Code:
Feb 25 02:07:45 localhost pkgExtractor[2192]: 	Extracting...
Feb 25 02:07:50 localhost installdb[2188]: done. (0.003u + 0.002s)
Feb 25 02:07:52 localhost pkgExtractor[2192]: 	2121 of 2121 files written in 6.16 seconds.
Feb 25 02:07:52 localhost pkgExtractor[2192]: 	187208 kilobytes installed at 29.7 MB/s.
Feb 25 02:07:52 localhost Installer[2182]: 	Performing post-extraction actions
Feb 25 02:07:52 localhost Installer[2182]: 	Finishing receipt
Feb 25 02:07:52 localhost runner[2185]: pkgReceiptMaker[2193]: 2008-02-25 02:07:52.053 pkgReceiptMaker[2193:613] _CFGetHostUUIDString: unable to determine UUID for host. Error: 35
Feb 25 02:07:52 localhost runner[2185]: pkgReceiptMaker[2193]: 
Feb 25 02:07:52 localhost Installer[2182]: run postflight script for MySQL 5.0.51a-community for Mac OS X
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 080225  2:07:52 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.0.51a-osx10.4-i686/data/ is case insensitive
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: ERROR: 1062  Duplicate entry 'localhost-' for key 1
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 080225  2:07:52 [ERROR] Aborting
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 080225  2:07:52 [Note] ./bin/mysqld: Shutdown complete
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Installation of system tables failed!
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Examine the logs in ./data for more information.
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: You can try to start the mysqld daemon with:
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: ./bin/mysqld --skip-grant &
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: and use the command line tool
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: ./bin/mysql to connect to the mysql
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: database and look at the grant tables:
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: shell> ./bin/mysql -u root mysql
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: mysql> show tables
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Try 'mysqld --help' if you have problems with paths. Using --log
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: gives you a log in ./data that may be helpful.
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: The latest information about MySQL is available on the web at
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: [url]http://www.mysql.com[/url]
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Please consult the MySQL manual section: 'Problems running mysql_install_db',
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: and the manual section that describes problems on your OS.
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Another information source is the MySQL email archive.
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: Please check all of the above before mailing us!
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: And if you do mail us, you MUST use the ./bin/mysqlbug script!
Feb 25 02:07:52 localhost runner[2185]: postflight[2194]: 
Feb 25 02:07:52 localhost Installer[2182]: Removing temporary directory "/private/tmp/mysql-5.0.51a-osx10.4-i686.pkg.2182ja7Xay"
Feb 25 02:07:52 localhost Installer[2182]: Finalize disk "MacOSX"
Feb 25 02:07:52 localhost Installer[2182]: Notifying system of updated components
Feb 25 02:07:52 localhost Installer[2182]: _installNextPackage of 0
Feb 25 02:07:52 localhost Installer[2182]: 
Feb 25 02:07:52 localhost Installer[2182]: **** Summary Information ****
Feb 25 02:07:52 localhost Installer[2182]:   Operation      Elapsed time
Feb 25 02:07:52 localhost Installer[2182]: -----------------------------
Feb 25 02:07:52 localhost Installer[2182]:      script      0.38 seconds
Feb 25 02:07:52 localhost Installer[2182]:        zero      0.01 seconds
Feb 25 02:07:52 localhost Installer[2182]:     install      6.33 seconds
Feb 25 02:07:52 localhost Installer[2182]:    validate      0.00 seconds
Feb 25 02:07:52 localhost Installer[2182]:          os      0.00 seconds
Feb 25 02:07:52 localhost Installer[2182]:     extract      6.20 seconds
Feb 25 02:07:52 localhost Installer[2182]:     receipt      0.09 seconds
Feb 25 02:07:52 localhost Installer[2182]:        disk      1.01 seconds
Feb 25 02:07:52 localhost Installer[2182]:      config      0.03 seconds
Feb 25 02:07:52 localhost Installer[2182]: 
Feb 25 02:07:52 localhost Installer[2182]: Starting installation:
Feb 25 02:07:52 localhost Installer[2182]: Finalizing installation.
Feb 25 02:07:52 localhost Installer[2182]: IFDInstallController 760E20 state = 5
Feb 25 02:07:52 localhost Installer[2182]: Displaying 'Install Succeeded' UI.
Siehe da: Der Fehler wieder. Aber weiter...
6. Server starten und Passwort setzen:
Code:
sh-3.2# ./support-files/mysql.server start
Starting MySQL
 SUCCESS! 
sh-3.2# ./bin/mysqladmin -u root password Geheim
./bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
7. Da es nicht will nochmal die Dateien angeschaut:
Code:
sh-3.2# ls -lha ./data/mysql/user.*
-rw-rw----  1 _mysql  wheel     0B 25 Feb 02:07 ./data/mysql/user.MYD
-rw-rw----  1 _mysql  wheel   1,0K 25 Feb 02:07 ./data/mysql/user.MYI
-rw-rw----  1 _mysql  wheel    10K 25 Feb 02:07 ./data/mysql/user.frm
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Zeig mal bitte die Rechte der Verzeichnisse
/usr/local
/usr/local/mysql
/usr/local/mysql/data
 

arnekolja

Bismarckapfel
Registriert
25.02.08
Beiträge
141
Zeig mal bitte die Rechte der Verzeichnisse
/usr/local
/usr/local/mysql
/usr/local/mysql/data

Okay, hier sind sie:
Code:
arnespc:~ root# ls -lha /usr/|grep local
drwxr-xr-x   15 root  wheel   510B Feb 25 02:07 local
arnespc:~ root# ls -lha /usr/local|grep mysql
lrwxr-xr-x   1 root  wheel    26B Feb 25 02:07 mysql -> mysql-5.0.51a-osx10.4-i686
drwxr-xr-x  19 root  wheel   646B Jan 14 09:41 mysql-5.0.51a-osx10.4-i686
arnespc:~ root# ls -lha /usr/local/mysql/ | grep -i data
drwxr-x---   9 _mysql  wheel   306B Feb 25 02:20 data

Aaaber, ich glaube ich habe den Knackpunkt gefunden. Zitat aus einem anderen Forum (nach Stunden der Googelei):

hostname myhost
before installing MySQL.

MySQL during installation tries to create entries for both root@localhost and root@$hostname probably because of special meaning the name 'localhost' has in MySQL (you may see Invoking MySQL Programs in MySQL documentation; in short, 'localhost' means connecting via unix socket, not tcp). Bizarre, IMO, but documented.

Ich habe mal, siehe Output oben, "hostname arnespc" ausgeführt und danach nochmal das Script ausgeführt:

Code:
sh-3.2# scripts/mysql_install_db 
WARNING: The host 'arnespc' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
080225  2:20:26 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.0.51a-osx10.4-i686/data/ is case insensitive
OK
Filling help tables...
080225  2:20:26 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.0.51a-osx10.4-i686/data/ is case insensitive
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

(hier abgeschnitten, der Rest war nur Anleitung)

Scheint also so, als würde das was bringen. Okay, ich komm noch immer nicht rein, aber das Script läuft nun "anders", was ja vielversprechend ist. Also _nochmal_ alles killen und mit neuem Hostnamen weitermachen. Ich hab natürlich vergessen zu schauen, wie der vorherige war, aber ich mutmaße mal "localhost" ;) Wie lautet der denn bei Dir?

edit: Siehe da, Erfolg! Es klappt! Zum hundertsten Mal frisch installiert und mit neuem Hostnamen klappt es nun reibungslos: Mit mysqladmin ein Passwort festgelegt und mit mysql eingeloggt - beides erfolgreich :)
 

ulf

Alkmene
Registriert
18.07.07
Beiträge
32
Vielen Dank an euch zwei. Sollte ich heute irgendwann noch nach Hause kommen ;), werd ich das gleich mal testen. Kleine Ursache, große Wirkung, hm? :mad:
 

arnekolja

Bismarckapfel
Registriert
25.02.08
Beiträge
141
Vielen Dank an euch zwei. Sollte ich heute irgendwann noch nach Hause kommen ;), werd ich das gleich mal testen. Kleine Ursache, große Wirkung, hm? :mad:

Ja, vor Allem wundert mich aber, dass das Problem so unbekannt ist. Es scheint ja wohl so zu sein, dass der Hostname standardmässig MySQL-untauglich localhost ist. Oder andersherum: MySQL scheint ja standardmässig sein Initial-Migrations-Script so gesetzt zu haben, dass es mit localhost nicht läuft, was ich auch ein wenig merkwürdig finde.

drlecter, wie lautet denn Dein Hostname, bzw. hast Du diesen manuell verändert?
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Ich habe wie oben erwähnt meinen Hostnamen unter Sharing geändert. Dies aber schon bei Inbetriebnahme des
MBs.
 

arnekolja

Bismarckapfel
Registriert
25.02.08
Beiträge
141
Ich habe wie oben erwähnt meinen Hostnamen unter Sharing geändert. Dies aber schon bei Inbetriebnahme des
MBs.

Ach so, okay. Hab ich wohl bei der Länge des Threads irgendwann aus den Augen verloren. Anyway, vielen Dank für Deine Unterstützung :)
 

ulf

Alkmene
Registriert
18.07.07
Beiträge
32
Auch von mir vielen Dank für deine Hilfe. Nun haben wir das Problem ja endlich im Griff. Bei mir läuft es jetzt auch, tadellos, sogar mit PrefPane :)
 

ulf

Alkmene
Registriert
18.07.07
Beiträge
32
Ich habe wie oben erwähnt meinen Hostnamen unter Sharing geändert. Dies aber schon bei Inbetriebnahme des
MBs.

Das hat er bei mir witzigerweise nicht übernommen, Hostname war weiterhin localhost. Erst ein Ändern an der bash hat den gewünschten Erfolg gebracht. Da sollte man vielleicht auch noch mal nachhaken, woran das liegen kann.