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
& cleanup
commando’s, verwijderde het launchctl
script, 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:
- mysql geïnstalleerd met
brew install mysql
-
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
-
Start mysql met de opdracht
mysql.server start
om erop in te kunnen loggen -
Het alternatieve beveiligingsscript gebruikt:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
-
De sectie
launchctl
gevolgd 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 cleanup
zal 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
kill
elke 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/hostconfig
en verwijder de regelMYSQLCOM=-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 doctor
en 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
launchctl
zodat het automatisch start bij het opstarten
mysql
zou 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 root
uit, 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 -p
en 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 mysql
brouwt en de stappen volgt, lijkt het alsof het root-wachtwoord new-password
moet 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_safe
en select * from user;
werden er geen rijen geretourneerd. Ik opende de MySQLWorkbench terwijl mysqld_safe
actief 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.
mysql.server stop
<– moet mogelijk worden bewerkt op basis van uw versieps -ef | grep mysql
<– geeft processen weer met mysql in hun naamkill [PID]
<– kill de processen met PID
Verwijder bestanden. Instructies hierboven zijn goed. Ik voeg toe:
sudo find /. -name "*mysql*"
- Gebruik uw oordeel,
rm -rf
deze 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
sudo brew update
sudo brew install cmake
<– afhankelijkheid voor mysql, handigsudo brew install openssl
<– afhankelijkheid voor mysql, handigsudo brew info mysql
<– blader hier eens door… het geeft je een idee van wat er gaat komensudo 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
sudo chown -R mysql /usr/local/var/mysql/
<– mysql zou niet werken voor mij totdat ik deze opdracht uitvoerdesudo mysql.server start
<– nogmaals, de exacte syntaxis kan verschillen- 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 mysql
of gewoon mysql.server start
Als 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_installation
zou me moeten vragen … Beveilig de installatie. Ik dacht dat de MySQL-server misschien niet werkt en terecht. Running brew services start mysql
en vervolgens mysql_secure_installation
Werkte 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-start
als 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
- Zorg er eerst voor dat je homebrew hebt geïnstalleerd
- Voer
brew doctor
uit en adresseer alles wat homebrew wil dat je oplost - Voer
brew install mysql
- Voer
brew services restart mysql
- Voer
mysql.server start
- Voer
mysql_secure_installation
uit
uit
uit
Antwoord 16
Het “Base-Path” voor Mysql wordt opgeslagen in /etc/my.cnf
en 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