416 Stimmen

brew install mysql auf macOS

Ich versuche, MySQL auf Mac OS 10.6 mit Homebrew einzurichten, indem ich brew install mysql 5.1.52 .

Alles läuft gut und ich bin auch erfolgreich mit dem mysql_install_db .
Wenn ich jedoch versuche, mich mit dem Server zu verbinden, indem ich:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'

Ich verstehe:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' 
failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'

Ich habe versucht, Zugang zu mysqladmin or mysql using -u root -proot auch,
aber es funktioniert weder mit noch ohne Passwort.

Dies ist eine brandneue Installation auf einem brandneuen Rechner, und soweit ich weiß, muss die neue Installation ohne Root-Passwort zugänglich sein. Ich habe es auch versucht:

/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

aber ich bekomme auch

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

768voto

Lorin Rivers Punkte 7744

Ich denke, man kann in diese Lage kommen, wenn man bereits ältere Versionen von mysql installiert hat. Ich hatte das gleiche Problem und keine der oben genannten Lösungen hat bei mir funktioniert. Ich habe es so gelöst:

Gebrauchte Brühen remove & cleanup Befehle, entlädt die launchctl Skript, löschte dann das mysql-Verzeichnis in /usr/local/var , löschte mein bestehendes /etc/my.cnf (überlassen Sie das ruhig Ihnen, falls es zutreffen sollte) und launchctl plist

Die Zeichenfolge für die Liste wurde aktualisiert. Beachten Sie auch, dass Ihr alternatives Sicherheitsskriptverzeichnis davon abhängt, welche Version von MySQL Sie installieren.

Schritt für Schritt:

brew remove mysql

brew cleanup

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo rm -rf /usr/local/var/mysql

Ich habe dann wieder bei Null angefangen:

  1. installierte mysql mit brew install mysql

  2. führte die von brew vorgeschlagenen Befehle aus: (siehe Hinweis: unten)

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
  3. Starten Sie mysql mit mysql.server start Befehl, um sich dort anmelden zu können

  4. Verwendung des alternativen Sicherheitsskripts:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
  5. Befolgt die launchctl Abschnitt aus der Ausgabe des Brew-Paket-Skripts wie,

    #start
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    #stop
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Anmerkung: die --force etwas an brew cleanup wird auch veraltete Fässer säubern, ich denke, das ist eine neue Funktion für Heimbrauer.

Beachten Sie die zweite: Ein Kommentator sagt, Schritt 2 sei nicht erforderlich. Ich will es nicht testen, also YMMV!

82voto

corysimmons Punkte 6264

Hier finden Sie eine detaillierte Anleitung, wie Sie MySQL von Ihrem Mac entfernen und dann The Brew Way installieren können, wie Sedorner oben schrieb:

Entfernen Sie MySQL vollständig per Das technische Labor

  • ps -ax | grep mysql
  • stoppen und kill alle MySQL-Prozesse
  • sudo rm /usr/local/mysql
  • sudo rm -rf /usr/local/var/mysql
  • sudo rm -rf /usr/local/mysql*
  • sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • sudo rm -rf /Library/StartupItems/MySQLCOM
  • sudo rm -rf /Library/PreferencePanes/My*
  • launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • bearbeiten /etc/hostconfig und entfernen Sie die Zeile MYSQLCOM=-YES-
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*
  • sudo rm -rf /private/var/db/receipts/*mysql*
  • sudo rm -rf /tmp/mysql*
  • versuchen zu laufen mysql sollte es nicht funktionieren.

Brew installieren MySQL pro Benutzer Sedorner von diesem StackOverflow Antwort

  • brew doctor und beheben Sie alle Fehler

  • brew remove mysql

  • brew cleanup

  • brew update

  • brew install mysql

  • unset TMPDIR

      mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp # whoami is executed inline
  • mysql.server start

  • führen Sie die von Brew vorgeschlagenen Befehle aus, fügen Sie MySQL zu launchctl so dass es automatisch beim Starten gestartet wird

mysql sollte jetzt wie erwartet funktionieren und ständig laufen

Viel Glück.

46voto

Alistair McMillan Punkte 1140

Ich hatte das gleiche Problem. Es scheint, dass etwas mit den Einrichtungsanweisungen oder den anfänglichen Tabellen, die erstellt werden, nicht stimmt. So habe ich mysqld auf meinem Rechner zum Laufen gebracht.

Wenn der mysqld-Server bereits auf Ihrem Mac läuft, stoppen Sie ihn zunächst mit:

launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist

Starten Sie den mysqld-Server mit dem folgenden Befehl, mit dem sich jeder mit vollen Rechten anmelden kann.

mysqld_safe --skip-grant-tables

Dann laufen mysql -u root mit dem Sie sich nun erfolgreich ohne Passwort anmelden können. Der folgende Befehl sollte alle Root-Passwörter zurücksetzen.

UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;

Wenn Sie nun die laufende Kopie von mysqld_safe beenden und ohne die Option skip-grant-tables neu starten, sollten Sie in der Lage sein, sich mit mysql -u root -p und das neue Passwort, das Sie gerade festgelegt haben.

22voto

Selbstgebrautes

  1. Stellen Sie zunächst sicher, dass Sie Homebrew installiert haben
  2. ausführen. brew doctor und kümmern Sie sich um alles, was Sie für Homebrew reparieren müssen
  3. ausführen. brew install mysql
  4. ausführen. brew services restart mysql
  5. ausführen. mysql.server start
  6. ausführen. mysql_secure_installation

20voto

mrucci Punkte 4192

Wenn Sie MySQL 5.7 installiert haben, ist der Prozess ein wenig anders als bei früheren Versionen. Um das Root-Passwort zurückzusetzen, gehen Sie wie folgt vor:

sudo rm -rf /usr/local/var/mysql
mysqld --initialize

Ein temporäres Passwort wird auf der Konsole ausgegeben und kann nur zur Aktualisierung des Root-Passworts verwendet werden:

mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X