Ich versuche, MySQL unter Mac OS 10.6 mit Homebrew von brew install mysql 5.1.52
einzurichten.
Alles läuft gut und ich bin auch mit dem mysql_install_db
erfolgreich.
Wenn ich jedoch versuche, eine Verbindung zum Server herzustellen, verwenden Sie:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
Ich bekomme:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: Verbindung zum Server unter 'localhost' herstellen. __ ) '
Ich habe auch versucht, auf mysqladmin or mysql using -u root -proot
zuzugreifen,
aber es funktioniert nicht mit oder ohne Passwort.
Dies ist eine brandneue Installation auf einer brandneuen Maschine. Soweit ich weiß, muss die neue Installation ohne Root-Passwort zugänglich sein. Ich habe auch versucht:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
aber ich bekomme auch
ERROR 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Kennwort: NEIN)
Ich denke, man kann in dieser Position enden, wenn ältere Versionen von mysql bereits installiert sind. Ich hatte das gleiche Problem und keine der oben genannten Lösungen funktionierte für mich. Ich habe es so repariert:
Ich habe die remove
& cleanup
-Befehle von brew verwendet, das launchctl
-Skript entladen, dann das mysql-Verzeichnis in /usr/local/var
gelöscht, meinen vorhandenen /etc/my.cnf
(überlassen Sie diesen, falls zutreffend) und launchctl plist
Die Zeichenfolge für die Liste wurde aktualisiert. Beachten Sie auch, dass Ihr alternatives Sicherheitsskriptverzeichnis auf der von Ihnen installierten MySQL-Version basiert.
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 bei Null angefangen:
brew install mysql
die folgenden Befehle ausführen lassen: (siehe Hinweis: unten)
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Starten Sie mysql mit dem Befehl mysql.server start
, um sich darauf anmelden zu können
Verwendete das alternative Sicherheitsskript:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Folgen Sie dem Abschnitt launchctl
in der Skriptausgabe des Brew-Pakets, z. B.
#start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Boom.
Hoffe das hilft jemandem!
Hinweis: Das --force
-Bit in brew cleanup
wird auch veraltete Kegs bereinigen. Ich denke, es handelt sich um ein neuartiges Homebrew-Feature.
Beachten Sie die zweite: ein Kommentar sagt, dass Schritt 2 nicht erforderlich ist. Ich möchte es nicht testen, also YMMV!
Hier finden Sie eine detaillierte Anleitung, die alle MySQL-Dateien von Ihrem Mac entfernt und dann The Brew Way installiert, wie Sedorner oben schrieb:
ps -ax | grep mysql
kill
alle MySQL-ProzesseSudo 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
/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*
mysql
auszuführen, es sollte nicht funktionierenbrew doctor
und beheben Sie eventuelle Fehlerbrew 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
mysql.server start
launchctl
hinzu, damit es beim Start automatisch gestartet wirdmysql
sollte nun wie erwartet funktionieren und ausgeführt werden
Godspeed.
Hatte das selbe Problem. Anscheinend stimmt etwas nicht mit den Setup-Anweisungen oder den anfänglichen Tabellen, die erstellt werden. So habe ich mysqld auf meinem Rechner laufen lassen.
Wenn der mysqld-Server bereits auf Ihrem Mac ausgeführt wird, stoppen Sie ihn zuerst 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 Berechtigungen anmelden kann.
mysqld_safe --skip-grant-tables
Führen Sie dann mysql -u root
aus, mit dem Sie sich jetzt ohne Kennwort erfolgreich 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 aktuelle Kopie von mysqld_safe beenden und ohne die Option zum Überspringen von Tabellen erneut starten, sollten Sie sich mit mysql -u root -p
und dem gerade festgelegten neuen Kennwort anmelden können.
Wenn brew MySQL 5.7 installiert hat, unterscheidet sich der Vorgang etwas von den 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 die Konsole gedruckt und kann nur zum Aktualisieren des Root-Passworts verwendet werden:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
Okay, ich hatte das gleiche Problem und habe es gelöst. Aus irgendeinem Grund funktioniert das Skript mysql_secure_installation bei Verwendung von Homebrew zur Installation von mysql nicht sofort, daher habe ich es manuell gemacht. Auf der CLI geben Sie ein:
mysql -u root
Das sollte Sie in MySQL bringen. Führen Sie nun Folgendes aus (genommen von mysql_secure_installation):
UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;
Beenden Sie jetzt und kehren Sie mit mysql zurück zu: mysql -u root -p
Ich hatte gerade das gleiche Problem. Wenn Sie brew info mysql
und die Schritte befolgen, scheint das Root-Passwort new-password
zu sein, wenn ich mich recht erinnere. Ich habe dasselbe gesehen, was Sie sehen. Dieser Artikel hat mir am meisten geholfen.
Es stellte sich heraus, dass ich keine Konten für mich erstellt hatte. Wenn ich mich nach dem Ausführen von mysqld_safe
anmeldete und select * from user;
ausgeführt habe, wurden keine Zeilen zurückgegeben. Ich habe die MySQLWorkbench mit mysqld_safe
gestartet und ein root
-Konto mit allen Privaten hinzugefügt, die ich erwartet hatte. Das funktioniert jetzt gut für mich.
Stoppen Sie MySQL vollständig.
mysql.server stop
<- kann je nach Version bearbeitet werdenps -ef | grep mysql
<- listet Prozesse mit dem Namen mysql aufkill [PID]
<- beendet die Prozesse per PIDDateien entfernen Anweisungen oben sind gut. Ich werde hinzufügen:
Sudo find /. -name "*mysql*"
rm -rf
diese Dateien. Beachten Sie, dass viele Programme Treiber für mysql haben, die Sie nicht entfernen möchten. Löschen Sie beispielsweise keine Dateien im Installationsverzeichnis von PHP. Entferne Sachen in seinem eigenen mysql-Verzeichnis.Hoffentlich hast du Homebrew. Wenn nicht, lade es herunter.
Ich mag es, als Wurzel zu brauen, aber ich glaube nicht, dass Sie dies tun müssen. Edit 2018: Sie können nicht mehr als root brauen
Sudo brew update
Sudo brew install cmake
<- Abhängigkeit für MySQL, nützlichSudo brew install openssl
<- Abhängigkeit für MySQL, nützlichSudo brew info mysql
<- überfliegen Sie dies ... es gibt Ihnen eine Vorstellung davon, was als nächstes kommtSudo brew install mysql --with-embedded; say done
<- Installiert MySQL mit dem eingebetteten Server. Sagt Ihnen, wenn es fertig ist (meine Installation hat 10 Minuten gedauert)Sudo chown -R mysql /usr/local/var/mysql/
<- mysql funktioniert nicht für mich, bis ich diesen Befehl ausgeführt habeSudo mysql.server start
<- einmal mehr, die genaue Syntax kann variierenbrew Info MySQL
mysql: stable 5.6.12 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) *
Poured from bottle
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb
==> Dependencies
Build: cmake
==> Options
--enable-debug
Build with debug support
--enable-local-infile
Build with local infile loading support
--enable-memcached
Enable innodb-memcached support
--universal
Build a universal binary
--with-archive-storage-engine
Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
Compile with the BLACKHOLE storage engine enabled
--with-embedded
Build the embedded server
--with-libedit
Compile with editline wrapper instead of readline
--with-tests
Build with unit tests
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
To connect:
mysql -uroot
To reload mysql after an upgrade:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
mysql.service start
. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
oder mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Ich suche schon seit einiger Zeit nach einer Lösung, kann aber mein Problem nicht lösen. Ich habe mehrere Lösungen in stackoverflow.com ausprobiert, aber das hilft mir nicht.
TL; DR
MySQL Server läuft möglicherweise nach der Installation mit Brew nicht. Versuchen Sie brew services start mysql
oder einfach mysql.server start
, wenn Sie nicht möchten, dass MySQL als Hintergrunddienst ausgeführt wird.
Ganze Geschichte:
Ich habe gerade MySQL (stable) 5.7.17 auf einem neuen MacBook Pro installiert, auf dem Sierra ausgeführt wird. Außerdem wurde beim Ausführen von mysql_secure_installation
eine Fehlermeldung angezeigt:
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Sag was?
Gemäß den Installationsinformationen von Brew sollte mysql_secure_installation
Sie dazu auffordern, ... die Installation zu sichern. Ich dachte mir, dass der MySQL-Server zu Recht nicht läuft. Das Ausführen von brew services start mysql
und dann mysql_secure_installation
hat wie ein Zauber funktioniert.
Versuchen Sie es, indem Sie Grant die Berechtigung Befehl von mysql erteilen
Keine der obigen Antworten (oder eine der Dutzenden Antworten, die ich anderswo gesehen habe) funktionierte für mich, wenn ich brew mit der neuesten Version von MySQL und Yosemite verwende. Ich habe am Ende eine andere MySQL-Version via Brew installiert.
Eine ältere Version angeben, indem Sie sagen (zum Beispiel)
brew install mysql56
Arbeitete für mich. Hoffe das hilft jemandem. Dies war ein frustrierendes Problem, bei dem ich das Gefühl hatte, für immer festgehalten zu werden.
Der "Basispfad" für "Mysql" wird in /etc/my.cnf
gespeichert, der beim Aktualisieren nicht aktualisiert wird. Öffnen Sie es einfach und ändern Sie den basedir-Wert
Ändern Sie dies beispielsweise:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13
auf die neue Version zeigen:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19
Starten Sie Mysql erneut mit:
mysql.server start
Ich hatte das gleiche Problem, nachdem ich versucht hatte, MySQL neu zu starten.
Ich benutze zur Vereinfachung die folgenden zwei Aliase in meinem .profile
alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
Nachdem ich mysql gestoppt und dann einen Neustart versucht habe, habe ich das Problem festgestellt, das Sie hatten. Ich habe mir die Launchctl-Last angesehen, und es wurde ein Fehler "nichts gefunden zum Laden" gemeldet.
Nach einer schnellen Suche fand ich das ..
http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/
Also habe ich den mysql-start
-Alias wie folgt aktualisiert
alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
Dies hat mein Problem gelöst, das für Sie nützlich sein kann.
Hier ist ein Update für MySQL 5.7
bash --version GNU bash, Version 4.4.12 (1) -release (x86_64-Apple-darwin17.0.0) Copyright (C) 2016 Free Software Foundation, Inc. . Lizenz GPLv3 + : GNU GPL Version 3 oder höher Dies ist freie Software. Es steht Ihnen frei, es zu ändern und weiterzuverteilen. Es besteht KEINE GEWÄHRLEISTUNG, soweit gesetzlich zulässig . # ==================== ====================== brew --version Homebrew 1.7.6 Homebrew/Homebrew-Kern (Git-Revision eeb08; letzter Commit.) 2018-09-27) Homebrew/Homebrew-Fass (Git-Revision c9f62; letzter Commit 2018-09-27) # ================== =========================__. mysql --version mysql Ver 14.14 Distrib 5.7.23, für osx10.13 (x86_64) verwenden EditLine-Wrapper # ========================================= __. system_profiler SPSoftwareDataType Software: Systemsoftware-Übersicht: Systemversion: macOS 10.13.3 (17D47) Kernel-Version: Darwin 17.4.0 Startvolume: Macintosh HD Boot-Modus: Normal Computername: EdisonMacHomeBj Benutzername: Edison (edison) Sicherer virtueller Speicher: Aktiviert Systemintegritätsschutz: Deaktiviert Zeit seit dem Start: 6 Tage 23:13
brew entfernen [email protected] brew cleanup mv/usr/local/var/mysql /usr/local/var/mysql.bak brew install [email protected] rm -rf/usr/local/var/mysql # ===================================== ==== mysqld --initialize 2018-09-28T04: 54: 06.526061Z 0 [Warnung] TIMESTAMP mit implizitem DEFAULT-Wert ist veraltet. Bitte verwenden Sie die Serveroption --explicit_defaults_for_timestamp (weitere Informationen finden Sie in der Dokumentation). 2018-09-28T04: 54: 06.542625Z 0 [Warnung] Einstellung lower_case_table_names = 2, da das Dateisystem für/usr/local/var/mysql/ist Groß- und Kleinschreibung wird nicht berücksichtigt 2018-09-28T04: 54: 07.096637Z 0 [Warnung] InnoDB: Neue Protokolldateien erstellt, LSN = 45790 2018-09-28T04: 54: 07.132950Z 0 [Warnung] InnoDB: Erstellen von Fremddaten Schlüsselbedingungs-Systemtabellen . 2018-09-28T04: 54: 07.196824Z 0 [Warnung] Es wurde keine vorhandene UUID gefunden. Daher wird davon ausgegangen, dass dieser Server zum ersten Mal gestartet wurde. Generieren einer neuen UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130 . 2018-09-28T04: 54: 07.224871Z 0 [Warnung] Die Gtid-Tabelle kann nicht verwendet werden. Tabelle 'mysql.gtid_executed' kann nicht geöffnet werden . 2018-09-28T04: 54: 07.366688Z 0 [Warning] CA-Zertifikat ca.pem ist selbst signiert . 2018-09-28T04: 54: 07.457954Z 1 [Hinweis] Für root @ localhost wird ein temporäres Kennwort generiert: kq3K = JR8; GqZ # ========================= ================... mysql_secure_installation -uroot -p "kq3K = JR8; GqZ" mysql_secure_installation: [Warnung] Die Verwendung eines Kennworts für die Befehlszeilenschnittstelle kann unsicher sein. Sicherung der MySQL-Server-Bereitstellung . Das vorhandene Kennwort für den Benutzerkontenstamm ist abgelaufen. Bitte geben Sie ein neues Passwort ein . Neues Passwort: Neues Passwort erneut eingeben: VALIDATE PASSWORD PLUGIN kann zum Testen von Passwörtern Und zur Verbesserung der Sicherheit verwendet werden. Es überprüft die Stärke des Passworts Und ermöglicht den Benutzern, nur die Passwörter festzulegen, die sicher sind. Möchten Sie das VALIDATE PASSWORD-Plugin einrichten? Drücken Sie y | Y für Ja, eine beliebige andere Taste für Nein: n Vorhandenes Passwort für root verwenden . Ändern Sie das Passwort für root. ((Drücken Sie y | Y für Ja, eine beliebige andere Taste für Nein): y Neues Passwort: Geben Sie das neue Passwort erneut ein: Standardmäßig ist eine MySQL-Installation anonym user, Benutzer können sich bei MySQL anmelden, ohne dass __.__ ein Benutzerkonto für diese Benutzer erstellt werden muss. Dies ist nur für Tests gedacht, und um die Installation etwas ruhiger zu gestalten . Sie sollten Entfernen Sie sie vor dem Wechsel in eine Produktionsumgebung __ Anonyme Benutzer entfernen (Drücken Sie y | Y für Ja, eine beliebige andere Taste für Nein): y Erfolg . Normalerweise sollte root nur von __. 'localhost' aus eine Verbindung herstellen dürfen. Dadurch kann sichergestellt werden, dass niemand das ___. Das Root-Passwort aus dem Netzwerk erraten kann . Root-Anmeldung remote unterdrücken? (Drücken Sie y Y für Ja, jeder andere Schlüssel für Nein): n ... überspringen . Standardmäßig enthält MySQL eine Datenbank mit dem Namen 'test', auf die jeder Benutzer zugreifen kann. Dies ist auch möglich nur für Testzwecke vorgesehen.... und sollte entfernt werden, bevor Sie in eine Produktionsumgebung gehen . Entfernen Sie die Testdatenbank und Zugang dazu? (Drücken Sie y | Y für Ja, jede andere Taste für Nein): n ... überspringen . Beim erneuten Laden der Berechtigungstabellen werden alle bisher vorgenommenen Änderungen sofort wirksam. . Berechtigungstabellen jetzt neu laden? (Drücken Sie y | Y für Ja, eine beliebige andere Taste für Nein): y Erfolg . Alles fertig!