brew installeer mysql op macOS

Ik probeer MySQL op mac os 10.6 in te stellen met Homebrew by brew install mysql 5.1.52.

Alles gaat goed en ik ben ook succesvol met de mysql_install_db.
Wanneer ik echter probeer verbinding te maken met de server met:

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

Ik krijg:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: maak verbinding met de server op 'localhost'
mislukte fout: 'Toegang geweigerd voor gebruiker 'root'@'localhost' (met wachtwoord: NO)'

Ik heb ook geprobeerd toegang te krijgen tot mysqladmin or mysql using -u root -proot,
maar het werkt niet met of zonder wachtwoord.

Dit is een gloednieuwe installatie op een gloednieuwe machine en voor zover ik weet moet de nieuwe installatie toegankelijk zijn zonder root-wachtwoord. Ik heb ook geprobeerd:

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

maar ik krijg ook

ERROR 1045 (28000): Toegang geweigerd voor gebruiker 'root'@'localhost' (met wachtwoord: NEE)

Antwoord 1, autoriteit 100%

Ik denk dat je in deze positie terecht kunt komen als oudere versies van mysql al zijn geïnstalleerd. Ik had hetzelfde probleem en geen van de bovenstaande oplossingen werkte voor mij. Ik heb het zo opgelost:

Gebruikte remove& cleanupcommando’s, verwijderde het launchctlscript, verwijderde vervolgens de mysql directory in /usr/local/var, verwijderde mijn bestaande /etc/my.cnf(laat dat aan jou over, mocht het van toepassing zijn) en launchctl plist

De string voor de plist bijgewerkt. Merk ook op dat uw alternatieve directory met beveiligingsscripts gebaseerd zal zijn op de versie van MySQL die u installeert.

Stap voor stap:

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

Ik ben toen helemaal opnieuw begonnen:

  1. mysql geïnstalleerd met brew install mysql
  2. voer de voorgestelde commando’s uit: (zie opmerking: hieronder)

    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    
  3. Start mysql met de opdracht mysql.server startom erop in te kunnen loggen

  4. Het alternatieve beveiligingsscript gebruikt:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
    
  5. De sectie launchctlgevolgd van de uitvoer van het brouwpakketscript, zoals,

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

Opmerking:het --force-bit op brew cleanupzal ook verouderde vaten opruimen, denk dat het een nieuwe homebrew-functie is.

Let op het tweede:een commentator zegt dat stap 2 niet vereist is. Ik wil het niet testen, dus YMMV!


Antwoord 2, autoriteit 9%

Hier zijn gedetailleerde instructies om alle MySQL van je Mac te verwijderen en vervolgens The Brew Way te installeren zoals Sedorner hierboven schreef:

Verwijder MySQL volledig per The Tech Lab

  • ps -ax | grep mysql
  • stop en killelke MySQL processen
  • 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
  • bewerken /etc/hostconfigen verwijder de regel 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*
  • probeert uit te voeren mysql, het moet niet werken

Brew installeren MySQL per gebruiker Sedorner van deze StackOverflow antwoord

  • brew doctoren oplossen fouten

  • 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

  • voer de opdrachten uit die Brew voorstelt, voeg MySQL toe aan launchctlzodat het automatisch start bij het opstarten

mysqlzou nu moeten werken en altijd werken zoals verwacht

Godspeed.


Antwoord 3, autoriteit 6%

Heb hetzelfde probleem gehad. Het lijkt erop dat er iets mis is met de installatie-instructies of de initiële tabellen die worden gemaakt. Dit is hoe ik mysqld op mijn computer heb laten draaien.

Als de mysqld-server al op uw Mac draait, stop deze dan eerst met:

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

Start de mysqld-server met de volgende opdracht waarmee iedereen kan inloggen met volledige machtigingen.

mysqld_safe --skip-grant-tables

Voer vervolgens mysql -u rootuit, waarmee u nu zonder wachtwoord succesvol zou moeten inloggen. De volgende opdracht zou alle root-wachtwoorden moeten resetten.

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

Als je nu de actieve kopie van mysqld_safe doodt en het opnieuw opstart zonder de optie skip-grant-tables, zou je in staat moeten zijn om in te loggen met mysql -u root -pen de nieuwe wachtwoord dat u zojuist hebt ingesteld.


Antwoord 4, autoriteit 2%

Als brew MySQL 5.7 heeft geïnstalleerd, is het proces een beetje anders dan bij eerdere versies.
Ga als volgt te werk om het root-wachtwoord opnieuw in te stellen:

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

Een tijdelijk wachtwoord wordt naar de console afgedrukt en kan alleen worden gebruikt om het root-wachtwoord bij te werken:

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

Antwoord 5

Ok, ik had hetzelfde probleem en heb het opgelost. Om de een of andere reden werkt het mysql_secure_installation script niet uit de doos wanneer ik Homebrew gebruik om mysql te installeren, dus ik deed het handmatig. Voer op de CLI in:

mysql -u root

Dat zou je in mysql moeten brengen. Doe nu het volgende (overgenomen van 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;

Beëindig nu en ga terug naar mysql met: mysql -u root -p


Antwoord 6

Ik had zojuist hetzelfde probleem. Als je brew info mysqlbrouwt en de stappen volgt, lijkt het alsof het root-wachtwoord new-passwordmoet zijn als ik het me goed herinner. Ik zag hetzelfde wat jij ziet. Dit artikelheeft me het meest geholpen.

Het bleek dat ik geen geenaccounts voor mij had aangemaakt. Toen ik me aanmeldde na het uitvoeren van mysqld_safeen select * from user;werden er geen rijen geretourneerd. Ik opende de MySQLWorkbench terwijl mysqld_safeactief was en voegde een root-account toe met alle rechten die ik verwachtte. Dit werkt nu goed voor mij.


Antwoord 7

Als mysql al is geïnstalleerd

Stop mysql volledig.

  1. mysql.server stop<– moet mogelijk worden bewerkt op basis van uw versie
  2. ps -ef | grep mysql<– geeft processen weer met mysql in hun naam
  3. kill [PID]<– kill de processen met PID

Verwijder bestanden. Instructies hierboven zijn goed. Ik voeg toe:

  1. sudo find /. -name "*mysql*"
  2. Gebruik uw oordeel, rm -rfdeze bestanden. Merk op dat veel programma’s stuurprogramma’s voor mysql hebben die u niet wilt verwijderen. Verwijder bijvoorbeeld geen dingen in de directory van een PHP-installatie. Verwijder dingen in zijn eigen mysql-map.

Installeren

Hopelijk heb je homebrew. Zo niet, download het dan.

Ik gebruik brew graag als root, maar ik denk niet dat dat nodig is. Bewerk 2018: je kunt brew niet meer als root uitvoeren

  1. sudo brew update
  2. sudo brew install cmake<– afhankelijkheid voor mysql, handig
  3. sudo brew install openssl<– afhankelijkheid voor mysql, handig
  4. sudo brew info mysql<– blader hier eens door… het geeft je een idee van wat er gaat komen
  5. sudo brew install mysql --with-embedded; say done<– Installeert mysql met de ingebouwde server. Vertelt je wanneer het klaar is (mijn installatie duurde 10 minuten)

Daarna

  1. sudo chown -R mysql /usr/local/var/mysql/<– mysql zou niet werken voor mij totdat ik deze opdracht uitvoerde
  2. sudo mysql.server start<– nogmaals, de exacte syntaxis kan verschillen
  3. Gebruikers aanmaken in mysql (http://dev.mysql .com/doc/refman/5.7/en/create-user.html). Vergeet niet een wachtwoord voor de rootgebruiker toe te voegen.

Antwoord 8

Brouwinfo 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).

of mysql -u root

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Ik ben al een tijdje op zoek naar een oplossing, maar ik kan mijn probleem niet oplossen. Ik heb verschillende oplossingen geprobeerd in stackoverflow.com, maar dit helpt me niet.


Antwoord 9

TL;DR

MySQL Server wordt mogelijk niet uitgevoerd na installatie met een brouwsel. Probeer brew services start mysqlof gewoon mysql.server startAls u niet wilt dat MySQL als achtergrondservice wordt uitgevoerd.

Volledig verhaal:

Ik heb net mysql (stabiel) 5.7.17 geïnstalleerd in een nieuwe MacBook Pro Running Sierra en kreeg ook een fout bij het uitvoeren van 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)

Zeg wat?

Volgens de installatie-informatie van Brew, mysql_secure_installationzou me moeten vragen … Beveilig de installatie. Ik dacht dat de MySQL-server misschien niet werkt en terecht. Running brew services start mysqlen vervolgens mysql_secure_installationWerkte als een charme.


Antwoord 10

Hier is een update voor MySQL 5.7

Bash - Versie
GNU Bash, versie 4.4.12 (1) -Release (x86_64-apple-darwin17.0.0)
Copyright (C) 2016 Gratis Software Foundation, Inc.
Licentie GPLV3 +: GNU GPL-versie 3 of later
Dit is gratis software; Je bent vrij om het te veranderen en opnieuw te verdelen.
Er is geen garantie, voor zover toegestaan ​​door de wet.
# ========================================
Brew - Versie
Homebrew 1.7.6
Homebrew / Homebrew-Core (Git Revision Eeb08; Laatste commit 2018-09-27)
Homebrew / Homebrew-Cask (Git Revision C9F62; Laatste commit 2018-09-27)
# ========================================
MySQL - Versie
MySQL Ver 14.14 Distrib 5.7.23, voor OSX10.13 (X86_64) met behulp van EditLine Wrapper
# ========================================
System_Profiler SPSoftwaredatatype
Software:
  Systeemsoftware Overzicht:
   Systeemversie: MacOS 10.13.3 (17D47) 
   Kernelversie: Darwin 17.4.0
   Opstartvolume: Macintosh HD
   Opstartmodus: Normaal
   Computernaam: EdisonMacHomeBj
   Gebruikersnaam: Edison (edison)
   Beveiligd virtueel geheugen: ingeschakeld
   Bescherming systeemintegriteit: uitgeschakeld
   Tijd sinds opstarten: 6 dagen 23:13
brew verwijder [email protected]
brouwen opruimen
mv /usr/local/var/mysql /usr/local/var/mysql.bak
brew installeer [email protected]
rm -rf /usr/local/var/mysql
#========================================
mysqld --initialize
2018-09-28T04:54:06.526061Z 0 [Waarschuwing] TIMESTAMP met impliciete DEFAULT-waarde is verouderd. Gebruik a.u.b. --explicit_defaults_for_timestamp serveroptie (zie documentatie voor meer details).
2018-09-28T04:54:06.542625Z 0 [Waarschuwing] Lower_case_table_names=2 instellen omdat het bestandssysteem voor /usr/local/var/mysql/ niet hoofdlettergevoelig is
2018-09-28T04:54:07.096637Z 0 [Waarschuwing] InnoDB: nieuwe logbestanden gemaakt, LSN = 45790
2018-09-28T04:54:07.132950Z 0 [Waarschuwing] InnoDB: systeemtabellen voor externe sleutelbeperkingen maken.
2018-09-28T04:54:07.196824Z 0 [Waarschuwing] Er is geen bestaande UUID gevonden, dus we gaan ervan uit dat dit de eerste keer is dat deze server is gestart. Een nieuwe UUID genereren: 87cf2f10-c2da-11e8-ac2d-ba163df10130.
2018-09-28T04:54:07.224871Z 0 [Waarschuwing] Gtid-tabel is niet klaar voor gebruik. Tabel 'mysql.gtid_executed' kan niet worden geopend.
2018-09-28T04:54:07.366688Z 0 [Waarschuwing] CA-certificaat ca.pem is zelfondertekend.
2018-09-28T04:54:07.457954Z 1 [Opmerking] Er wordt een tijdelijk wachtwoord gegenereerd voor root@localhost: kq3K=JR8;GqZ
#========================================
mysql_secure_installation -uroot -p"kq3K=JR8;GqZ"
mysql_secure_installation: [Waarschuwing] Het gebruik van een wachtwoord op de opdrachtregelinterface kan onveilig zijn.
De implementatie van de MySQL-server beveiligen.
Het bestaande wachtwoord voor de gebruikersaccount root is verlopen. Stel een nieuw wachtwoord in.
Nieuw paswoord:
Voer nieuw wachtwoord opnieuw in:
VALIDATE PASSWORD PLUGIN kan worden gebruikt om wachtwoorden te testen
en de beveiliging te verbeteren. Het controleert de sterkte van het wachtwoord
en stelt de gebruikers in staat om alleen die wachtwoorden in te stellen die:
veilig genoeg. Wilt u de VALIDATE PASSWORD-plug-in instellen?
Druk op y|Y voor Ja, een andere toets voor Nee: n
Bestaand wachtwoord gebruiken voor root.
Het wachtwoord voor root wijzigen? ((Druk op y|Y voor Ja, een andere toets voor Nee) : y
Nieuw paswoord:
Voer nieuw wachtwoord opnieuw in:
Standaard heeft een MySQL-installatie een anonieme gebruiker,
iedereen in staat stellen in te loggen op MySQL zonder te hoeven
een voor hen aangemaakte gebruikersaccount. Dit is alleen bedoeld voor
testen, en om de installatie wat soepeler te laten verlopen.
Je moet ze verwijderen voordat je naar een productie gaat
omgeving.
Anonieme gebruikers verwijderen? (Druk op y|Y voor Ja, een andere toets voor Nee) : y
Succes.
Normaal gesproken mag root alleen verbinding maken vanaf
'lokale host'. Dit zorgt ervoor dat iemand niet kan raden naar
het root-wachtwoord van het netwerk.
Root login op afstand niet toestaan? (Druk op y|Y voor Ja, een andere toets voor Nee) : n
 ... overslaan.
Standaard wordt MySQL geleverd met een database met de naam 'test' die:
iedereen kan toegang krijgen. Dit is ook alleen bedoeld voor testen,
en moet worden verwijderd voordat u naar een productie gaat
omgeving.
Testdatabase verwijderen en er toegang toe krijgen? (Druk op y|Y voor Ja, een andere toets voor Nee) : n
 ... overslaan.
Het opnieuw laden van de privilegetabellen zorgt ervoor dat alle wijzigingen
die tot dusver zijn gemaakt, zullen onmiddellijk van kracht worden.
Bevoorrechte tabellen nu opnieuw laden? (Druk op y|Y voor Ja, een andere toets voor Nee) : y
Succes.
Helemaal klaar!

Antwoord 11

Om iets toe te voegen aan eerdere antwoorden – Bij het upgraden van MySql 5.6 naar MySql 8.0 heb ik de hier gegeven stappen gevolgd om een schone verwijdering uit te voeren, maar ik kreeg de volgende fouten

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

Het kostte me wat tijd om erachter te komen. Hier een aanwijzing gevonden:
https://discourse.brew.sh/t/clean-removal- van-mysql/2251

Dus de sleutel tot mijn probleem was het verwijderen van /usr/local/etc/my.cnf bestandna het verwijderen.
Na die laatste stap begon MySql eindelijk te werken.


Antwoord 12

Probeer door Grant toestemming te geven Command of mysql


Antwoord 13

Ik had hetzelfde probleem nadat ik probeerde mysql opnieuw op te starten.

Ik gebruik voor het gemak de volgende twee aliassen in mijn .profile

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

Na het stoppen van mysql en vervolgens proberen opnieuw op te starten, kreeg ik het probleem dat u ondervond. Ik heb gekeken naar de launchctl load en deze meldde een “niets gevonden om te laden” -fout.

Na een snelle zoektocht vond ik dit..

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

Dus ik heb de alias mysql-startals volgt bijgewerkt

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

Hiermee is mijn probleem opgelost, wat nuttig voor u kan zijn.


Antwoord 14

Geen van de bovenstaande antwoorden (of een van de tientallen antwoorden die ik elders zag) werkte voor mij bij het gebruik van brew met de meest recente versie van mysql en yosemite. Uiteindelijk heb ik via brew een andere mysql-versie geïnstalleerd.

Een oudere versie opgeven door (bijvoorbeeld) te zeggen

brew install mysql56

Werkte voor mij. Hoop dat dit iemand helpt. Dit was een frustrerend probleem waarvan ik het gevoel had dat ik er voor altijd aan vast zat.


Antwoord 15

Homebrew

  1. Zorg er eerst voor dat je homebrew hebt geïnstalleerd
  2. Voer brew doctoruit en adresseer alles wat homebrew wil dat je oplost
  3. Voer brew install mysql
  4. uit

  5. Voer brew services restart mysql
  6. Voer mysql.server start
  7. uit

  8. Voer mysql_secure_installation
  9. uit


Antwoord 16

Het “Base-Path” voor Mysql wordt opgeslagen in /etc/my.cnfen wordt niet bijgewerkt wanneer u een brouwupgrade uitvoert. Open het gewoon en verander de gebaseerde waarde

Wijzig dit bijvoorbeeld:

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

om naar de nieuwe versie te verwijzen:

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

Start MySQL opnieuw met:

mysql.server start

Antwoord 17

Probeer oplossing Ik voorzag voor MariaDB, hoge verandering die het werkt met MySQL ook:

Macosx Homebrew MySQL-root-wachtwoord

Kortom, probeer in te loggen met uw gebruikersnaam! niet root.

Probeer dezelfde naam als uw MacOS-account gebruikersnaam, b.v. JOHNSMIT.

Om in te loggen als root, probleem:

mysql -u johnsmit

Other episodes