Vra

Ek het 'n probleem met die MySQL wortel gebruikers in My MySQL opstel, en ek kan net nie vir die lewe van my uitwerk hoe om dit op te los. Dit blyk dat ek een of ander manier het opgemors die wortel gebruikers, en my toegang tot databasisse is nou baie wisselvallig.

Vir verwysing, ek gebruik MAMP op OS X aan die MySQL bediener voorsien. Ek is nie seker hoeveel dit al sake -. Ek sou raai dat alles wat ek gedoen het, sal 'n opdrag-lyn fix nodig het om dit op te los

Ek kan MySQL begin gebruik MAMP soos gewoonlik, en toegang databasisse met behulp van die "standaard" gebruikers Ek geskape het tot my PHP programme. Maar die wortel gebruikers, wat ek gebruik in my MySQL GUI kliënt, en ook in phpMyAdmin, kan slegs toegang tot die "information_schema" databasis, sowel as twee Ek het met die hand geskep, en vermoedelik (en verkeerdelik) links regte wyd oop vir. My 15 of so ander databasisse kan nie verkry word my die wortel gebruiker. Toe ek laai phpMyAdmin, die huis skerm sê: "Skep nuwe databasis: Geen Voorregte".

Ek het beslis nie op 'n stadium wagwoord my wortel gebruiker verander met behulp van die dialoog MAMP. Maar ek kan nie onthou of ek enigiets anders wat hierdie probleem kan veroorsaak het. Ek het probeer om weer die verandering van die wagwoord, en dit lyk asof daar geen verandering in die kwessie wees.

Ek het ook probeer Herstel root wagwoord met behulp van die command line, insluitend MySQL hand begin met --skip-toekenning-tafels dan spoel privs, maar weer, lyk niks om die probleem op te los.

Ek het tot die einde van my idees kom, en sal dit baie waardeer sommige stap-vir-stap raad en diagnose van een van die kenners hier!

Baie dankie vir jou hulp.

Was dit nuttig?

Oplossing

Dis omdat MAMP en die command line mysql (en die MySQL alles behalwe MAMP) is anders.

MAMP het sy eie gebou in mysql en jy kan nie via die command line, net die bou in phpMyAdmin om dit te kry.

hierdie is my ervaring, ek het MAMP en gebruik die ander mysql vir Ruby on Rails en ander dinge.

Ander wenke

Ek het dieselfde probleem: slegs een rekening gewerk om toegang te verkry tot die MySQL databasis via die administrasie konsole of die navraag leser. Toe ek die skip-toekenning-tafels gebruik skielik alle rekeninge kan aanteken, insluitend wortel.

Ek het dit gesien as 'n fout so ver terug as 2006 , maar die finale inskrywing daar is nie 'n bevel dat wanneer in Skip-toekenning-tafels af uitgevoer kan word nie, so ek het nog nie die probleem opgelos.

Wat my gehelp
Hierdie antwoord is soortgelyk aan die een deur Ben Bakelaar beskryf in die skakel hierbo . Die probleem kom wanneer jou my.ini het die naam opkyk vlag afgeskakel (slaan-naam-los). Dit doodslaan vermoë mysql se op te los 'local host' en die mysql.user tafel het net 'n inskrywing vir localhost / wortel.

Werk localhost inskrywing jou mysql.user tafel se plaas te 127.0.0.1, en jy kan inteken op die plaaslike consoles selfs met die skip-naam-los funksie aangeskakel.

Probeer die aanvang van die bediener met --skip-toekenning-tafels en dan keur die voorreg tafels in die MySQL databasis:

select * from user where User='root';
select * from tables_priv where User='root';
select * from db where User='root';

Jy kan ook probeer:

show grants for root@localhost;
show grants for root@'%';
show grants for root@'hostname';

As in julle dit kan doen om te probeer om wortel volle voorregte gee:

grant all privileges on *.* to root@localhost identified by 'password' with grant option;

Jou kommentaar toon jou huidige root voorregte (sonder --skip-toekenning-tabelle). Dit is goed dat jy nie enige inskrywing vir 'root' het @ '%', hoef jy nie dat by verstek en jy kan dit 'n veiligheidsmaatreël oorweeg.

Dit lyk asof jy het opgemors jou 'root'@'localhost' voorregte. GRANT ALL PRIVILEGES ON . is vreemd. Gewoonlik, jy het iets soos GRANT ALL PRIVILEGES ON *.* of GRANT ALL PRIVILEGES ON myDatabase.myTable. Jou GRANT nie die databasisse en / of tabelle spesifiseer om die voorregte verleen vir. Ek het geen idee hoe jou kliënt daarin geslaag om dit te produseer. Ek kan nie voortplant dit met die MySQL instruksies kliënt (probeer leë stringe, witspasie, enige vorm van aanhalings ...), mysql weier die GRANT verklaring (wat natuurlik, is die korrekte gedrag). Dit lyk asof MAMP is iets wat regtig vreemd doen. Sedert ek 'n GRANT soos joune nie kan voortplant, kan ek nie sê hoe mysql wat vertolk, maar ek dink dit is die regte stel om 'N' op die globale vlak.

Om dit op te los, kan jy 'n gebruiker met daarvoor bestemde voorregte nodig. Gewoonlik, jy het 'n gebruiker 'root'@'localhost' en 'n 'root'@'your-hostname'. As jy gelukkig is, 'root'@'your-hostname' is nog in orde. Afair, mysql aansluitings werk soos volg: As jy in verbinding bly om localhost, jy in verbinding bly as 'root'@'localhost' (nie seker oor 127.0.0.1, ek dink dit is ook 'root'@'localhost'). As jy in verbinding bly om your-hostname, jy in verbinding bly as 'root'@'your-hostname'. As voorregte se gebruiker is nog ok, kan jy die voorregte vir 'root'@'localhost' werk en jy klaar is.

In jou kommentaar, sê jy jy kan nie verbind via 127.0.0.1 sedert die aansluiting is in 'n ongewone plek. Ek dink jy die fout verkeerd interpreteer. IIRC jy in verbinding bly via socket as jy in verbinding bly om 'localhost', maar via TCP / IP indien jy in verbinding bly om 127.0.0.1 of your-hostname. As mysql probeer om aan te sluit via socket en kan die aansluiting vind nie (omdat jy nie die regte plek het spesifiseer), die fout boodskap noem waar mysql probeer om die potjie te vind. Jou fout boodskap nie. Ek dink jou fout is 'n netwerk fout. Miskien het jy die MySQL-bediener met die opsie --skip-networking begin, of jou verstellings spesifiseer 'n verkeerde bind-adres. Jy moet eers los dat, anders kan jy nie verbind as 'root'@'your-hostname'.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top