Jeg synes derfor det er på tide med en lille artikel om problematiken.
MySQL har fra version 4.1 valgt at ændre måden den godkender login fra klienter på. Her er lidt mere info:
<a href="http://dev.mysql.com/ (...)
og:
<a href="http://dev.mysql.com/ (...)
Problemet er at php først understøtter det nye password format fra version 5.0 (i den nye mysqli extension).
Mere info om mysqli:
<a href="http://dk2.php.net/ (...)
Det giver naturligvis problemer for mange, da de fleste ikke bruger så nye versioner af php endnu. Indtil da er det nødvendigt at bruge det gamle password format i MySQL.
Det kan gøres på flere måder, men i forbindelse med phpMyAdmin er det letteste, iflg. min erfaring, at tvinge MySQL til at bruge det 'gamle' format ved at mindske størrelsen på feltet der indeholder passwords.
Det nye password fylder 45 byte (41 byte fra 4.1.1) i modsætning til det gamle, der kun fylder 16 byte. Fidusen er så i al sin enkelthed at ændre størrelsen på feltet til: varchar(16) istedet for: varchar(41/45). Dette gøres lettest lige efter installation af MySQL (og evt. phpMyAdmin).
1. Start med at logge på phpMyAdmin som bruger: 'root' uden password (dette er standard i phpMyAdmin).
2. Vælg derefter databasen: 'mysql'.
3. Vælg tabellen: 'user'.
4. Under fanebladet: 'Struktur' vælger du at redigere feltet: 'Password'.
5. Ret længden fra 41 (eller 45) til 16 og gem ændringen.
6. Gå nu til forsiden i phpMyAdmin og vælg linket: 'Privilegier'.
7. Her kan du nu vælge at oprette en ny bruger med password. Opret gerne flere, en med alle rettigheder til dig selv som admin og en eller flere med færre rettigheder (fx uden Administrations rettigheder) til brug på dine hjemmesider.
8. Nu kan du indsætte din nye bruger denne i fil: 'config.inc.php' i 'phpMyAdmin' mappen. Det gøres ved at rette disse linjer:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'dit_brugernavn';
$cfg['Servers'][$i]['password'] = 'dit_password';
9. Test nu at du kan logge på med din nye bruger ved at åbne phpMyAdmin igen og tjek at du er logget på med dit nye brugernavn.
10. Hvis alt fungerer som det skal er der nu kun tilbage at sætte password på 'root' brugeren og slette brugeren der kan logge på uden brugernavn og password.
Jeg håber det kan hjælpe på forståelsen hos nogle af dem der løber ind i problemer ved installation af nyere MySQL servere. Der er nok andre måder at gribe det an på, men jeg finder denne metode enkel og ligetil. Når engang der opgraderes til php version > 5.0 og mysqli extension tages i brug er det enkelt at gå ind og rette størrelsen på 'Password' feltet til 41 igen og det vil så være muligt at logge på med både det nye og det gamle format.


