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)

2voto

Edison Punkte 510

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.
License GPLv3+: GNU GPL version 3 or later 

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

#========================================
brew --version
Homebrew 1.7.6
Homebrew/homebrew-core (git revision eeb08; last commit 2018-09-27)
Homebrew/homebrew-cask (git revision c9f62; last commit 2018-09-27)

#========================================
mysql --version
mysql  Ver 14.14 Distrib 5.7.23, for osx10.13 (x86\_64) using  EditLine wrapper

#========================================
system\_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.13.3 (17D47)
      Kernel Version: Darwin 17.4.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: EdisonMacHomeBj
      User Name: Edison (edison)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Disabled
      Time since boot: 6 days 23:13
    brew remove mysql@5.7
brew cleanup
mv /usr/local/var/mysql /usr/local/var/mysql.bak
brew install mysql@5.7
rm -rf /usr/local/var/mysql

#========================================
mysqld --initialize
2018-09-28T04:54:06.526061Z 0 \[Warning\] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit\_defaults\_for\_timestamp server option (see documentation for more details).
2018-09-28T04:54:06.542625Z 0 \[Warning\] Setting lower\_case\_table\_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2018-09-28T04:54:07.096637Z 0 \[Warning\] InnoDB: New log files created, LSN=45790
2018-09-28T04:54:07.132950Z 0 \[Warning\] InnoDB: Creating foreign key constraint system tables.
2018-09-28T04:54:07.196824Z 0 \[Warning\] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130.
2018-09-28T04:54:07.224871Z 0 \[Warning\] Gtid table is not ready to be used. Table 'mysql.gtid\_executed' cannot be opened.
2018-09-28T04:54:07.366688Z 0 \[Warning\] CA certificate ca.pem is self signed.
2018-09-28T04:54:07.457954Z 1 \[Note\] A temporary password is generated for root@localhost: kq3K=JR8;GqZ

#========================================
mysql\_secure\_installation -uroot -p"kq3K=JR8;GqZ"
mysql\_secure\_installation: \[Warning\] Using a password on the command line interface can be insecure.

Securing the MySQL server deployment.

The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: n
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:

Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

2voto

Gishas Punkte 160

Nur um etwas zu den vorherigen Antworten hinzuzufügen - Beim Upgrade von MySql 5.6 auf MySql 8.0 habe ich die hier angegebenen Schritte für eine saubere Deinstallation befolgt, doch ich erhielt folgende Fehler

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. Ich habe hier einen Hinweis gefunden: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

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

1voto

Alexander Millar Punkte 176

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

Der Einfachheit halber verwende ich die folgenden beiden 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 die Launchctl-Last angesehen und es wurde der Fehler "nothing found to load" gemeldet.

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 mich aktualisiert mysql-start Alias wie folgt

alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'

Damit habe ich mein Problem gelöst, was vielleicht auch für Sie nützlich ist.

1voto

toddmetheny Punkte 4345

Keine der obigen Antworten (oder eine der Dutzenden von Antworten, die ich anderswo gesehen habe) hat bei mir funktioniert, als ich brew mit der neuesten Version von mysql und yosemite verwendet habe. Ich endete mit der Installation einer anderen mysql-Version über brew.

Angabe einer älteren Version durch (zum Beispiel)

brew install mysql56

Hat bei mir funktioniert. Hoffentlich hilft das jemandem. Dies war ein frustrierendes Problem, das ich fühlte mich wie ich war auf immer stecken.

1voto

XMen Punkte 27816

Versuchen Sie es mit dem Kommando Grant permission von mysql

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