Brew installiere MySQL unter MacOS


343

Ich versuche, MySQL unter Mac OS 10.6 mit Homebrew by einzurichten brew install mysql 5.1.52.

Alles läuft gut und ich bin auch erfolgreich mit dem mysql_install_db.
Wenn ich jedoch versuche, eine Verbindung zum Server herzustellen, indem ich:

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

Ich bekomme:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: Stellen Sie unter 'localhost' eine Verbindung zum Server her. 
Fehler fehlgeschlagen: 'Zugriff für Benutzer' root '@' localhost 'verweigert (mit Passwort: NO)'

Ich habe auch versucht, darauf zuzugreifen mysqladmin or mysql using -u root -proot,
aber es funktioniert nicht mit oder ohne Passwort.

Dies ist eine brandneue Installation auf einem brandneuen Computer. Soweit ich weiß, muss auf die neue Installation ohne Root-Passwort zugegriffen werden können. Ich habe auch versucht:

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

aber ich bekomme auch

FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: NO)


Siehe auch: apple.stackexchange.com/a/199747/152271 ... es ist keine Brauinstallation , aber es hat bei mir funktioniert, als keine der Antworten hier zutraf
sudo rm -rf slash

1
FWIW habe ich benutzt mysql -u rootund es hat hier funktioniert: |
Rogerdpack

Antworten:


683

Ich denke, man kann in dieser Position landen, 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 behoben:

Verwendete Brews remove& cleanupBefehle, entlud das launchctlSkript, löschte dann das MySQL-Verzeichnis in /usr/local/var, löschte mein vorhandenes /etc/my.cnf(überlasse es dir, falls es zutreffen sollte) und starte die Liste

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 von vorne angefangen:

  1. MySQL mit installiert brew install mysql
  2. führte die 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 dem mysql.server startBefehl, um sich anmelden zu können

  4. Verwendete das alternative Sicherheitsskript:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
  5. Befolgen Sie den launchctlAbschnitt aus der Ausgabe des Brew Package-Skripts, z.

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

Hinweis: Mit dem --forceBit on brew cleanupwerden auch veraltete Fässer bereinigt. Denken Sie, es handelt sich um eine neue Homebrew-Funktion.

Beachten Sie den zweiten: Ein Kommentator sagt, dass Schritt 2 nicht erforderlich ist. Ich möchte es nicht testen, also YMMV!


30
Tolle Antwort, danke! Eine Sache hinzuzufügen: Obwohl es in der Antwort erwähnt wird, habe ich es verpasst und dabei ungefähr 6 Stunden verloren, als ich versuchte, mich auf Lion OSX einzurichten. Stellen Sie unbedingt sicher, dass Sie das alte MySQL-Verzeichnis unter / usr / local / var / mysql löschen, wenn Sie eine frühere Version von MySQL haben, bevor Sie es neu installieren. Andernfalls können Sie sich zunächst nicht als root anmelden, um das Kennwort festzulegen, und Sie verbringen viel Zeit damit, Ihren Computer anzuschreien.
Tronbabylove

3
Gehen Sie zu ~ / Library / LaunchAgents, um zu sehen, wie die .plist-Datei für MySQL tatsächlich heißt - in meinem Fall wurde sie von Homebrew installiert, sodass Sie das obige Deinstallationsverfahren ändern müssen.
Marco

7
Da dieser Thread alt ist, ist die obige Zeile "launchctl unload" jetzt falsch. Die Datei, die homebrew installiert, heißt nicht mehr "com.mysql.mysqld.plist", sondern "homebrew.mxcl.mysql.plist". Die Zeile sollte jetzt "launchctl unload -w ~ / Library / LaunchAgents / homebrew.mxcl.mysql.plist" lauten
Tommy

4
Ich habe `[~ / Library / LaunchAgents] $ ls com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist com.mysql.mysqld.plist com.facebook.videochat.ava.plist com.facebook.videochat.ava.plist / LaunchAgents` aber das Entladen gibtlaunchctl: Couldn't stat("com.mysql.mysqld.plist"): No such file or directory
Ava

9
mysql_install_db kann jetzt weggelassen werden, Brew erstellt den Server automatisch in der richtigen Richtung.
Rfreytag

52

Hier finden Sie detaillierte Anweisungen, wie Sie MySQL von Ihrem Mac entfernen und dann The Brew Way installieren können, wie Sedorner oben geschrieben hat:

Entfernen Sie MySQL vollständig gemäß The Tech Lab

  • ps -ax | grep mysql
  • Stop und killalle 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/hostconfigund entfernen Sie die ZeileMYSQLCOM=-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*
  • versuche zu rennen mysql, es sollte nicht funktionieren

Installieren Sie MySQL pro Benutzer Sedorner aus dieser 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 und fügen Sie MySQL hinzu, launchctldamit es beim Start automatisch gestartet wird

mysql sollte jetzt funktionieren und wie erwartet die ganze Zeit laufen

Gute Fahrt.


3
Ich wurde auch gebissen, indem ich all das oben Genannte tat, ohne vorher /tmp/mysql.sock zu entfernen.
TKH

Danke, +1. Paar Kommentare: Sie sagen zu sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist, dann versuchen Sie ein paar Schritte später, auf launchctl unloaddiese Datei zuzugreifen ... aber sie wird nicht dort sein, weil Sie sie gelöscht haben. Auch brew install mysqllief der mysql_install_dbSchritt für mich, keine Notwendigkeit, es zweimal zu tun.
Madbreaks

@CorySimmons bedeutet dies, dass ich meinen eigenen Namen oder rootden whoamiTeil Ihrer Befehle verwenden sollte?
YPCrumble

1
Bestätigt - whoami ist mein Name (ich habe verwendet root). Das hat super geklappt.
YPCrumble

Beachten Sie, dass /etc/hostconfignicht auf Yosemite existiert und darüber hinaus ( superuser.com/questions/850974/... )
ecbrodie

44

Hatte das gleiche Problem. Anscheinend stimmt etwas mit den Einrichtungsanweisungen oder den anfänglichen Tabellen, die erstellt werden, nicht. So habe ich mysqld auf meinem Computer zum Laufen gebracht.

Wenn der mysqld-Server bereits auf Ihrem Mac ausgeführt wird, beenden 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 vollständigen Berechtigungen anmelden kann.

mysqld_safe --skip-grant-tables

Führen mysql -u rootSie dann aus, damit 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 laufende Kopie von mysqld_safe beenden und ohne die Option skip-grant-tables neu starten, sollten Sie sich mit mysql -u root -pdem neuen Kennwort anmelden können, das Sie gerade festgelegt haben.


Das hat bei mir funktioniert! Ich habe angefangen, das Passwort zu erraten, bevor ich es auch versucht habe, und das Passwort war schließlich 'Passwort'. Also versuch das mal.
Cointilt

Das Starten von mysqld_safe ohne die Grant-Tabellen hat bei mir funktioniert. Das UPDATE funktionierte jedoch nicht, da ich keine Datensätze für select * aus mysql.user habe. Da wir bereits als root angemeldet sind, können wir einfach einen für root einfügen, indem wir GRANT ALL PRIVILEGES ON ausführen . TO 'root' @ 'localhost' IDENTIFIZIERT DURCH 'was auch immer'; SPÜLPRIVILEGIEN;
Rupert

Ich habe den Stop-Service / das Stop-Skript verwendet und es wurde immer wieder neu gestartet. War das, weil ich den LaunchAgent nie entladen habe? (doh)
Reneruiz

1
Was für mich funktioniert, war etwas Ähnliches wie das, was Sie machen. In dem Teil, in dem Sie das Passwort des Benutzers aktualisiert haben, musste ich Folgendes tun: use mysql; Benutzer-Set aktualisieren authentication_string = password ('1111') wobei user = 'root'; Wie in: stackoverflow.com/a/31122246/1328261
ruhanbidart

16

Wenn Brew MySQL 5.7 installiert hat, ist der Prozess etwas anders als bei früheren Versionen. Gehen Sie wie folgt vor, um das Root-Passwort zurückzusetzen:

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

Ein temporäres Kennwort wird auf der Konsole gedruckt und kann nur zum Aktualisieren des Root-Kennworts verwendet werden:

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

2
Ich kann das generierte temporäre Passwort sehen, aber wenn ich versuche, mysql auszuführen, erhalte ich: ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).und wenn ich mysql -u root mache, wird das Passwort nicht akzeptiert.
Forloop

1
Ich habe mysql 5.7.9 erfolgreich mit dem dmg-Installationsprogramm installiert, wodurch ich in einem Fenster aufgefordert wurde, ein temporäres Kennwort für mich zu generieren. Und jetzt mysqlfunktioniert es richtig. Schade, dass ich viel Zeit aufwenden musste, um es auf einem brandneuen Macbook zum Laufen zu bringen. : |
Forloop

1
@forloop 1. ps -ef | grep mysql 2. kill -9 pid 3. mysql.server start
oshaiken

Für mich hat das Zurücksetzen / Ändern des Passworts oben nicht funktioniert. Ich musste mich mit einem temporären Passwort bei MySQL anmelden und dann den Änderungsbefehl 1 ausführen. mysql -u root -p <temp-password> 2.ALTER USER 'root'@'localhost' IDENTIFIED BY 'New-Password';
Test Test

8

Okay, ich hatte das gleiche Problem und löste es. Aus irgendeinem Grund funktioniert das Skript mysql_secure_installation nicht sofort, wenn Homebrew zur Installation von mysql verwendet wird. Deshalb habe ich es manuell ausgeführt. Geben Sie auf der CLI Folgendes ein :

mysql -u root

Das sollte dich in MySQL bringen. Gehen Sie nun wie folgt vor (entnommen aus 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 nun und kehren Sie zu MySQL zurück mit: mysql -u root -p


1
Diese Lösung funktioniert bei mir nicht, da mysql -u root mich nicht zur mysql-Eingabeaufforderung führt. Es heißt, Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: NO)
Nick Vanderbilt

Hatten Sie eine frühere Installation von MySQL auf diesem Computer?
Darren Newton

8

Ich hatte gerade das gleiche Problem. Wenn Sie brew info mysqlund die Schritte befolgen, sieht es so aus, als ob das Root-Passwort sein sollte, new-passwordwenn ich mich richtig 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. Als ich mich nach dem Ausführen anmeldete mysqld_safeund select * from user;keine Zeilen zurückgab. Ich habe die MySQLWorkbench mit dem mysqld_safeLaufen geöffnet und ein rootKonto mit allen erwarteten Privilegien hinzugefügt . Das funktioniert jetzt gut für mich.


7

Wenn MySQL bereits installiert ist

Stoppen Sie MySQL vollständig.

  1. mysql.server stop <- muss möglicherweise basierend auf Ihrer Version bearbeitet werden
  2. ps -ef | grep mysql <- listet Prozesse mit MySQL im Namen auf
  3. kill [PID] <- Beenden Sie die Prozesse durch PID

Dateien entfernen. Die obigen Anweisungen sind gut. Ich werde hinzufügen:

  1. sudo find /. -name "*mysql*"
  2. Nach Ihrem Ermessen rm -rfdiese Dateien. Beachten Sie, dass viele Programme Treiber für MySQL haben, die Sie nicht entfernen möchten. Löschen Sie beispielsweise keine Inhalte im Verzeichnis einer PHP-Installation. Entfernen Sie Dinge in einem eigenen MySQL-Verzeichnis.

Installieren

Hoffentlich hast du Homebrew. Wenn nicht, laden Sie es herunter.

Ich mag es, als Wurzel zu brauen, aber ich glaube nicht, dass du das musst. Edit 2018: Sie können Brew nicht mehr als Root ausführen

  1. sudo brew update
  2. sudo brew install cmake <- Abhängigkeit für MySQL, nützlich
  3. sudo brew install openssl <- Abhängigkeit für MySQL, nützlich
  4. sudo brew info mysql <- überfliegen Sie dies ... es gibt Ihnen eine Vorstellung davon, was als nächstes kommt
  5. sudo brew install mysql --with-embedded; say done<- Installiert MySQL mit dem eingebetteten Server. Sagt Ihnen, wann es fertig ist (meine Installation dauerte 10 Minuten)

Danach

  1. sudo chown -R mysql /usr/local/var/mysql/ <- mysql würde für mich nicht funktionieren, bis ich diesen Befehl ausgeführt habe
  2. sudo mysql.server start <- Auch hier kann die genaue Syntax variieren
  3. Erstellen Sie Benutzer in MySQL ( http://dev.mysql.com/doc/refman/5.7/en/create-user.html ). Denken Sie daran, ein Kennwort für den Root-Benutzer hinzuzufügen.

3

brauen 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 starten

. 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 seit einiger Zeit nach einer Lösung, kann mein Problem aber nicht lösen. Ich habe verschiedene Lösungen in stackoverflow.com ausprobiert, aber nein, das hilft mir.


4
Versuchen Sie, sudo chown -R mysql /usr/local/var/mysql/vor dem Ausführen auszuführen, mysql.server startwenn Sie mysql.serverals Root ausgeführt werden (wenn Sie den Root-Benutzer verwenden, wird der MySQL-Server auf den _mysqlBenutzer heruntergestuft ).
Rarylson Freitas

Hey, hast du zufällig eine Lösung für dieses Problem gefunden?
KcC0

omg, die Anzahl der Fragen und 1.000 Zeilen Antworten auf dieses Problem ... denke, ich werde nur brew install redistbh
Danyal Aytekin

3

TL; DR

Der MySQL-Server wird nach der Installation mit Brew möglicherweise nicht ausgeführt. Versuchen Sie es brew services start mysqloder nur, mysql.server startwenn 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 mit Sierra installiert und beim Ausführen einen Fehler erhalten mysql_secure_installation:

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?

Laut den Installationsinformationen von Brew mysql_secure_installationsollte ich aufgefordert werden, ... die Installation zu sichern. Ich dachte, der MySQL-Server läuft möglicherweise nicht und das zu Recht. Laufen brew services start mysqlund dann mysql_secure_installationwie ein Zauber gearbeitet.


1

Versuchen Sie es, indem Sie Grant die Erlaubnis erteilen


Das Problem ist, dass ich nach der Installation von Brew überhaupt nicht mehr auf den MySQL-Server zugreifen kann. Ich kann es starten, aber es lässt mich nicht mit oder ohne Passwort als root rein. (Daher kann ich keine anderen Benutzer erstellen oder Berechtigungen verwalten. Oder habe ich Sie nicht richtig verstanden?
Nikola

1

Keine der oben genannten Antworten (oder eine der Dutzenden von Antworten, die ich an anderer Stelle gesehen habe) hat bei der Verwendung von Brew mit der neuesten Version von MySQL und Yosemite für mich funktioniert. Am Ende habe ich eine andere MySQL-Version über Brew installiert.

Angabe einer älteren Version mit den Worten (zum Beispiel)

brew install mysql56

Hat für mich gearbeitet. Hoffe das hilft jemandem. Dies war ein frustrierendes Problem, an dem ich mich für immer festgefahren fühlte.


Ja, das wird funktionieren, aber wenn Sie MySQL 5.7 installieren möchten (wie derzeit von brew install mysql), können Sie den Anweisungen in meiner Antwort stackoverflow.com/a/33924648/133106
mrucci

1

Hier ist ein Update für MySQL 5.7

Bash - Version
GNU Bash, Version 4.4.12 (1) -Veröffentlichung (x86_64-apple-darwin17.0.0)
Copyright (C) 2016 Freie Software Foundation, Inc.
Lizenz GPLv3 +: GNU GPL Version 3 oder höher 

Dies ist freie Software; Sie können es ändern und weitergeben.
Es besteht KEINE GARANTIE, soweit dies gesetzlich zulässig ist.

# =======================================
Gebräu - Version
Homebrew 1.7.6
Homebrew / Homebrew-Core (Git-Revision eeb08; letztes Commit 2018-09-27)
Homebrew / Homebrew-Fass (Git-Revision c9f62; letztes Commit 2018-09-27)

# =======================================
MySQL - Version
mysql Ver 14.14 Distrib 5.7.23 für osx10.13 (x86_64) mit dem EditLine-Wrapper

# =======================================
system_profiler SPSoftwareDataType
Software:

    Übersicht über die Systemsoftware:

      Systemversion: macOS 10.13.3 (17D47)
      Kernel-Version: Darwin 17.4.0
      Startvolumen: Macintosh HD
      Startmodus: Normal
      Computername: EdisonMacHomeBj
      Benutzername: Edison (edison)
      Sicherer virtueller Speicher: Aktiviert
      Systemintegritätsschutz: Deaktiviert
      Zeit seit dem Booten: 6 Tage 23:13
brauen entfernen mysql@5.7
Aufräumen brauen
mv / usr / local / var / mysql /usr/local/var/mysql.bak
brauen installieren mysql@5.7
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] Festlegen von_Tabellennamen in Kleinbuchstaben = 2, da das Dateisystem für / usr / local / var / mysql / die Groß- und Kleinschreibung 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 Fremdschlüsseleinschränkungssystemtabellen.
2018-09-28T04: 54: 07.196824Z 0 [Warnung] Es wurde keine vorhandene UUID gefunden. Wir gehen daher davon aus, 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. Die Tabelle 'mysql.gtid_executed' kann nicht geöffnet werden.
2018-09-28T04: 54: 07.366688Z 0 [Warnung] CA-Zertifikat ca.pem ist selbstsigniert.
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 auf der Befehlszeilenschnittstelle kann unsicher sein.

Sichern der MySQL Server-Bereitstellung.


Das vorhandene Kennwort für das Benutzerkontostamm ist abgelaufen. Bitte legen Sie ein neues Passwort fest.

Neues Kennwort:

Neues Passwort erneut eingeben:

VALIDATE PASSWORD PLUGIN kann zum Testen von Passwörtern verwendet werden
und die Sicherheit verbessern. Es überprüft die Stärke des Passworts
und ermöglicht den Benutzern, nur die Passwörter festzulegen, die es sind
sicher genug. Möchten Sie das VALIDATE PASSWORD Plugin einrichten?

Drücken Sie y | Y für Ja, eine andere Taste für Nein: n
Vorhandenes Passwort für root verwenden.
Passwort für root ändern? ((Drücken Sie y | Y für Ja, eine andere Taste für Nein): y

Neues Kennwort:

Neues Passwort erneut eingeben:
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer.
Jeder kann sich bei MySQL anmelden, ohne dass dies erforderlich ist
ein für sie erstelltes Benutzerkonto. Dies ist nur für
Testen und um die Installation etwas reibungsloser zu gestalten.
Sie sollten sie entfernen, bevor Sie in eine Produktion wechseln
Umgebung.

Anonyme Benutzer entfernen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y
Erfolg.


Normalerweise sollte root nur eine Verbindung herstellen dürfen
'localhost'. Dies stellt sicher, dass jemand nicht raten kann
das Root-Passwort aus dem Netzwerk.

Remote-Login aus der Ferne nicht zulassen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): n

 ... überspringen.
Standardmäßig wird MySQL mit einer Datenbank namens "test" geliefert
Jeder kann darauf zugreifen. Dies ist auch nur zum Testen gedacht,
und sollte vor dem Umzug in eine Produktion entfernt werden
Umgebung.


Testdatenbank entfernen und darauf zugreifen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): n

 ... überspringen.
Durch erneutes Laden der Berechtigungstabellen wird sichergestellt, dass alle Änderungen vorgenommen werden
bisher gemacht wird sofort wirksam.

Berechtigungstabellen jetzt neu laden? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y
Erfolg.

Alles erledigt!

Wenn Sie die gesamte Datenbank von "mysql.bak" kopieren, funktioniert dies nicht :(
Jahirul Islam Mamun

1

Nur um den vorherigen Antworten etwas hinzuzufügen - Beim Upgrade von MySql 5.6 auf MySql 8.0 habe ich die hier angegebenen Schritte ausgeführt, um eine saubere Deinstallation durchzuführen. Dabei wurden jedoch die folgenden Fehler angezeigt

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

Ich habe einige Zeit gebraucht, um es herauszufinden. Hier finden Sie einen Hinweis: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

Der Schlüssel zu meinem Problem war also das Entfernen der Datei /usr/local/etc/my.cnf nach der Deinstallation. Nach diesem letzten Schritt begann MySql endlich zu arbeiten.


0

Ich hatte das gleiche Problem, nachdem ich versucht hatte, MySQL neu zu starten.

Der Einfachheit halber verwende ich 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 versucht hatte, neu zu starten, trat das Problem auf, das Sie hatten. Ich habe mir das Launchctl-Load angesehen und es wurde ein Fehler gemeldet, dass nichts geladen wurde.

Nach einer kurzen Suche fand ich dies ..

http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/

Also habe ich meinen mysql-startAlias ​​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.


2
Brew unterstützt jetzt einen servicesBefehl, sodass diese durch ersetzt werden könnenbrew services stop mysql und brew services start mysqljeweils.
Devstuff

0

Der "Basispfad" für MySQL wird gespeichert und /etc/my.cnfnicht aktualisiert, wenn Sie ein Upgrade durchführen. Öffnen Sie es einfach und ändern Sie den basedir-Wert

Ändern Sie dies beispielsweise:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13

um auf die neue Version zu verweisen:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19

Starten Sie MySQL neu mit:

mysql.server start
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.