Just nu i M3-nätverket
Gå till innehåll

Konstigt felmeddelande i MySQL


oppilandkalle

Rekommendera Poster

oppilandkalle

Hej! JAg jag får följande meddelande när jag ska kontakta MySQL:

 

Warning: mysql_connect(): Access denied for user: 'anton@3b3h5ojkhde7mdo' (Using password: YES) in c:\inetpub\wwwroot\intodb.php on line 11

 

"anton" är databasen och "3b3h5ojkhde7mdo" är servern. Jag har skrivit rätt lösenord och trafikljuset i statusfältet lyser grönt, vad kan det vara för fel tror ni? Jag kan tillägga att rad 11 är raden då jag ska kontakta databasen.

 

Länk till kommentar
Dela på andra webbplatser

Jag tror att du har gjort en av två (eller bägge) saker:

 

1. Du kan ha blandat ihop argumenten till mysql_connect(). Om den säger "Access denied for user: 'anton@3b3h5ojkhde7mdo' " så betyder det att du har försökt logga in med usernamnet "anton" på servern 3b3h5ojkhde7mdo, inte att du har försök ansluta till databasen anton.

2. Du har inte gett användaren anton på den dator du ansluter _från_ rättigheter att komma åt databasen.

 

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Tyvärr så stämmer inte det.

 

1. Både användarnamnet och databasen heter anton.

2. Jag förstår inte riktigt, jag kör på min egen server installerad på datorn eller menar du att man måste göra några inställningar på servern innan man kan ansluta sig till MySQL? Jag använder för övrigt IIS.

 

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Att servern bara heter "3b3h5ojkhde7mdo" tycker jag låter lite konstigt, är du säker på att du inte ska ha något suffix till det (exempelvis 3b3h5ojkhde7mdo.telia.com).

 

Testa att byta ut servernamnet mot "localhost", det fungerar alltid om både MySQL och webbservern ligger på sammadator.

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Det blev samma felmeddelande förutom att "3b3h5ojkhde7mdo" blev utbytt mot "127.0.0.1" när jag provade localhost. Det konstiga tycker jag är att det blir samma felmeddelande som när man skriver fel lösenord.

 

//Anton

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

fhe: Jag har läst det nu man jag förstår inte riktigt hur man ska göra. Jag försökte först med att skriva in följande i filen mysql.exe: SELECT Host,User FROM mysql.user WHERE User='anton';. Detta gjorde ingen skillnad alls. Vet du eller någon annan här om det finns något annat man kan göra.

 

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Det du ska göra är förmodligen (förutsatt att du kör webbservern på samma dator som mysql) att från mysql köra:

GRANT ALL on anton.* TO 'anton'@'localhost' indentified by 'password';

 

det första anton är databasnamnet och det andra är användarnamnet. Om du inte kör mysql och webbserver på samma dator ska du byta ut localhost mot namnet (det fullständiga) eller IP-adressen för webbservern.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

När jag gör det kommer istället följande felmeddelande upp: ERROR 1044: Access denied for user: '@localhost' to database 'anton'

 

Det här verkar ju helt hopplöst!

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Du måste köra som en användare som har rätt att dela ut rättigheter, förslagsvis root.

 

För att göra det startar du mysql med

mysql -u root -p

Och anger därefter lösenordet du satt på root-användaren.

 

 

Länk till kommentar
Dela på andra webbplatser

När du kör kommandot ovan måste du vara inloggad som "root" i MySQL.

Som standard (om du inte ändrat) är då användarnamnet "root", och lösenordet tomt ("").

 

När du sedan loggat in kör du kommandot fhe gav dig, fast utan stavfelet (på IDENTIFIED):

GRANT ALL ON anton.* TO 'anton'@'localhost' IDENTIFIED BY 'password';

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Nu har jag av ren aggression installerat om hela MySQL så nu har jag inga fler användare än root. Hur gör jag nu för att skapa en användare men ändå kunna byta från den till root och tillbaka på ett enkelt sätt.

 

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Du gör på samma sätt som förut. Du loggar in i mysql som root. Grantar rättigheter till användaren du ska köra som (på hosten du kör från) och använder sedan den användaren i dina php-script.

Det är inte svårare, ominstallation eller inte.

 

Växla mellan användare gör du inte, någonsin, med mindre än att du startar en ny session.

 

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Men hur loggar jag in som root i mysql då. Och hur växlar jag tillbaka till anton.

 

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Precis som både det står ovan:

 

mysql -u root -p

 

Därefter anger du lösenordet om du har angivit något.

 

"Växlar tillbaka" gör du inte, varför skulle du göra det?

php-koden kör som anton, du kör som root från prompten, konceptet att växla finns inte och behöver inte finnas.

 

Edit: Dessutom har det här väldigt lite med php att göra, fast att flytta tråden nu vore ju meningslöst.

[inlägget ändrat 2003-07-08 14:54:21 av fhe]

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

och när jag gör det står det att det är något fel med SQL-syntaxen

 

Länk till kommentar
Dela på andra webbplatser

Som Cariad påpekade så hade jag ett tryckfel i den sats du fick av mig, har du rättat det?

 

Det är det rätt svårt att gissa vad som är fel om man inte vet vad du får för fel och vad du skriver när du får felet.

 

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Felet med ordet identified har jag rätat till. Felmeddelandet jag får är: "ERROR 1064: You have an error in your SQL syntax. Check the manual to your MySQL server version for the right syntax to use near blalabla".

Det jag skriver är: mysql -u root -p *jag trycker enter* GRANT ALL ON anton.* TO 'anton''localhost' IDENTIFIED BY '(här skriver jag mitt lösenord)';

Jag har även försökt att byta ut "mysql -u root -p" mot bl.a. "-u root -p", "-u root", "root" osv. men får samma felmeddelande. Och jag har inget lösenord till "root". Hoppas det här hjälper, jag verkligen försökt med allt!

//Anton

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Jodå, men det glömde jag när jag skrev föregående inlägg tydligen.

 

Länk till kommentar
Dela på andra webbplatser

Om du komemr in i MySQL så har du ju inget fel på just raden "mysql -u root -p", utan felet ligger antagligen i att du ännu inte skapat databasen.

 

Se även till att du verkligen har @-teckent (jag märkte att det på något mystiskt sätt försvinner när man kopierar från Eforum).

 

Gör alltså så här:

mysql -u root -p

[enter för tomt lösenord]

CREATE DATABASE anton;

GRANT ALL ON anton.* TO 'anton'@'localhost' IDENTIFIED BY 'password';

 

Se till att du verkligen får med @-tecknet!

 

Länk till kommentar
Dela på andra webbplatser

Isåfall får du nog tala om vad du får för felmeddelande och vad du skriver. Att byta ut felmeddelandet mot "blalabla" är inte världens bästa sätt att få hjälp.

 

Har du förresten skapat databasen? (se Cariads inlägg)

 

Länk till kommentar
Dela på andra webbplatser

oppilandkalle

Så, nu har jag provat Cariads förslag, det blev exakt samma felmeddelande. Databasen anton finns där, jag ser den i mysql-admin.

Vad blabla representerar är koden och på vilken rad felet var, det glömde jag tydligen skriva ut i mitt förra inlägg. Sorry!

//Anton

 

Länk till kommentar
Dela på andra webbplatser

Jag ger upp, vi har berättat för dig massor med gånger hur du ska göra.

Det funkar verkligen, om det inte funkar så gör du inte som vi skriver.

 

Om du skriver EXAKT (inklusive "password":

GRANT ALL ON anton.* TO 'anton'@'localhost' IDENTIFIED BY 'password';

 

Vad får du då för fel (ordagrant, inget "blalabla")

 

Får du inget fel så byter du ut "password" mot det password du har och ser om det går lika bra.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...