PHP kobler ikke til MySQL via localhost
Fikk plutselig feil da jeg prøvde å koble til MySQL-databasen via PHP i dag. Vips så ble det en aldri så liten detektivhistorie.
Koden jeg bruker for å koble til MySQL med PHP er veldig enkel, godt testet, og har fungert mange ganger før. Ikke det mest avanserte og ikke objektorientert, men den egner seg godt for testing. Her er den:
$host = 'localhost';
$user = 'root';
$pass = 'password';
$link = mysql_connect($host, $user, $pass);
if (!$link) {
die('MySQL error '. mysql_errno() . ': ' . mysql_error());
}Kort forklart, hvis $link klarer å koble opp til databasen går alt som det skal, mens om variablen inneholder feil, blir koblingen brutt og det blir istedenfor sendt tilbake noen feilmeldinger. Og her er den jeg fikk:
MySQL error 2002: No such file or directory
Så jeg prøvde å bytte ute passord, bruker, og byttet fra localhost og til 127.0.0.1, og heureka! Da funket det. Men likevel var jeg jo like langt i forhold til localhost. Jeg blunket litt med de våte øynene mine, og et slags mørke la seg over hjernen min. Feilmeldingen sa meg ikke en dritt, og jeg skjønte ikke hvorfor det bare funket med den lokale IP-adressen. Her var det bare å sette i gang og google.
En av tingene jeg testet var om MySQL i det hele tatt reagerte, men det visste jeg jo at den gjorde, fordi jeg kunne koble til via terminalen og via Sequel Pro. Likevel prøvde jeg å pinge den over telnet i terminale, slik:
telnet localhost 3306
Her tittet MySQL frem og sa hei som normalt, så dette var i orden, og fortsatt var jeg like lite klok.
Heldigvis kom jeg ganske snart over denne fine siden: C.5.2.2. Can’t connect to [local] MySQL server
Der sto det utrolig mye unødvendig og irrelevant, men jeg bet meg i alle fall merke i de tingene som faktisk stemte – blant annet en serie tester man kan gjøre i terminalen, disse her:
mysqladmin versionmysqladmin variablesmysqladmin -h `hostname` version variablesmysqladmin -h `hostname` --port=3306 versionmysqladmin -h host_ip versionmysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version
Da jeg kom til nummer tre på listen, skjønte jeg at noe var galt. Det gikk helt fint om jeg byttet ut `hostname` med localhost, men da jeg brukte den riktige koden, `hostname`, fikk jeg en feilmelding:
mysqladmin: connect to server at 'kebman.local' failed
error: 'Host '10.0.0.7' is not allowed to connect to this MySQL server'
Dette skjønte jeg ikke noe særlig mer utav heller, men det ante meg at det kunne være at en eller annen trodde at kebman.local var localhost, men det er jo slett ikke tilfelle. Dessuten er jo ikke 10.0.0.7 adressen til localhost heller (127.0.0.1 er adressen til localhost).
Lenger nede i dokumentet sto det noe om å finne navnet på socket-filen som brukes for å koble via localhost:
netstat -ln | grep mysql
Svaret jeg fikk, var dette:
/tmp/mysql.sock
«Hm», tenkte jeg nå. «Kan dette ha noe med denne kebman.local-greia å gjøre, tro? Feilen må jo ligge i php.ini et sted (filen man bruker til å konfigrere PHP med), men hvor?» Hadde også lest noe om det på erværdige stackoverflow.com. Jeg søkte igjennom alt som hadde med MySQL i php.ini, og endelig fant jeg det. I php.ini var det en annen adresse til mysql.sock. Jeg endret det til adressen jeg fikk opp med netstat-koden, og voila, endelig funket det å koble til MySQL via localhost med PHP igjen.
For å redigere php.ini på Mac må du først ha rot-passordet til maskinen din. Deretter er det letteste å bruke TextWrangler (gratis) til å åpne opp /etc/php.ini for redigering. Du kan også åpne filen med pico eller et annet UNIX-program for tekstredigering gjennom sudo-kommandoen (sudo gir ordre som rot-bruker).
Liberalistiske maktmekanismer
At motorganisasjoner oppstår som følge av at visse tar over for mye makt i samfunnet er en naturlig følge av liberalismen, spesielt om denne makten tas på illegitimt vis. Skjer det, vil det også åpne for bruk av “ulovlige” aksjonsformer som sivil ulydighet, slik det for eksempel er fremført av motorganisasjonen Anonymous. De er kun en reaksjon på illegitim overtakelse av makt, og er dermed en legitim aksjonsform mot urett utført av en større makt.
Relevante saker:
Samme gjelder arbeiderorganisasjoner vs. arbeidsplasser som tiltar i størrelse. Erkekapitalister ønsker at det ikke skal være en del av liberalismen, men de tar feil. Liberalismen er der for at folk skal kunne ha personlig frihet, og slik at de med stor makt ikke skal kunne tråkke over grunnleggende og åpenbare friheter i samfunnet. Ervervelse av markedsandeler er også ervervelse av makt, og derfor må organisasjoner som lever av slike ting også akseptere konkurranse, men ikke bare av andre som ønsker å ta i bruk av samme markedsandel, men også organisasjoner som har andre hensyn.
Skal grunnleggende friheter bevares, ja, da må organisasjoner som vokser seg “for store” godta å la seg hakke på av mindre organisasjoner og motorganisasjoner. Det er en av de mekanismene som er der for at visse ikke tar til seg urettmessig mye makt.
NAV er ingenting mot Simensen advokatbyrå
Jeg synes ikke det er så ille at NAV overvåker en og annen, når vi likevel har et privat firma som overvåker all din nettbruk, på grunn av personvernsrådgivere som er kjøpt og betalt av bransjen. Dette gjør de med Arbeiderpartiets velsignelse.
Men du har vel ikke noe å skjule, har du vel? <©>
Rupert Murdoch tar selvmord
…og verdens internettgründere jubler! Selvmordet til Murdoch stenger jo ikke internett på noen måte, slik Dagbladet skriver – og det gjør ei heller at Dagbladet nå tar penger for at folk skal kunne kommentere artiklene deres. Vi jubler for dette, fordi det åpner for konkurranse – i alle fall så lenge internett i praksis er fritt.
Denne mannen vil lukke det åpne internettet, skriver Dagbladet – som selv tar betalt for at folk skal kunne kommentere i avisen. Gidder jeg å betale for å ytre min mening, kanskje? Ser det slik ut? Gjør jeg det nå? Selvfølgelig ikke. Jeg bruker en alternativ kanal for å ytre min mening, og som konsekvens har jeg nesten sluttet å lese Dagbladet.no da det ikke er så interessant lenger uten å kunne kommentere direkte. Åpenbart leser jeg fortsatt Dagbladet, men jeg er jo veldig takknemlig for at Dagbladet nå har utvidet min horisont. Det er jo tross alt så mye annet bra der ute, dermed trenger jeg ikke bruke tiden på gamle utdøende reptiler.
Det same gjelder selvsagt Rupert Murdoch. Han ønsker å gjøre alle hans nettpublikasjoner til betalte tjenester, ikke ulikt Dagbladets sjakktrekk med å gjøre kommentering til en betalt tjeneste. (Faen, det er jo jeg som gjør dem en tjeneste når jeg kommenterer dritten deres!) I tillegg ønsker han å gjøre tjenestene usynlig fra Google…
Så, hva skjer da, egentlig. Åpenbart kommer Murdoch fortsatt til å tjene penger. Det er nok av folk som fortsatt er interessert i å bruke penger på hans tjenester, akkurat som det fortsatt finnes nok av folk som lar seg lure til å betale for å kommentere på Dagbaldet.
Alle vi andre, vi finner alternativer, vi. Sannsynligvis kommer det kjapt tjenester på banen som tar over tomrommet fra Murdoch og andre nyhetsleverandører. Dette skaper bare muligheter for folk som har lyst å komme på banen – kanskje folk som DEG!
Verden er herlig, dere!
skriv en kommentar