Avatar billede tkanto Praktikant
20. november 2011 - 21:50 Der er 29 kommentarer og
1 løsning

"Cannot select database db_db: php_network_getaddresses: getaddrinfo failed: No such host is known."

Hej alle

Jeg arbejder pt. på en hjemmeside i PHP. Jeg bruger AMPPS til Apache, MySQL og PHP. Når jeg forsøger at få adgang til min side (localhost) modtager jeg følgende fejlmeddelelse:

"Cannot select database db_db: php_network_getaddresses: getaddrinfo failed: No such host is known."

Hvad dælen er der galt??

Min config.php fil ser således ud: http://pastebin.com/44VsxSYt
Avatar billede NielsErikP Mester
20. november 2011 - 22:05 #1
Hej..
har du i din php husket at "Connecte" til din database :


/* Tilpas variablerne til dine oplysninger */
    $host = "localhost";     //skal ikke ændres i 90% af tilfældende
    $bruger = "root";        //"navn på din bruger"; //se de udleverede papirer/spørg dit webhotel
    $kodeord = "";             //dit personlige password
    $database = "";    //"navn på din database"; //se de udleverede papirer/spørg dit wehotel
       
/* Herfra ændres på eget ansvar - Der forbindes til databasen */
    $db = mysql_connect($host,$bruger,$kodeord)or die ('Der kunne ikke forbindes til databasen. Fejl: ' . mysql_error());    //der connectes til databasen
    mysql_select_db($database,$db);

Avatar billede tkanto Praktikant
20. november 2011 - 22:12 #2
Hej Niels Erik P.

Jeg har ikke et webhotel endnu, pt. ligger siden kun på min harddisk???
Avatar billede tkanto Praktikant
20. november 2011 - 22:12 #3
...Du kan som sagt se min config.php fil her: http://pastebin.com/44VsxSYt
Avatar billede erikjacobsen Ekspert
20. november 2011 - 22:20 #4
Kan det passe du ikke har indsat de korrekte værdier for host, databasenavn og username og password?
Avatar billede tkanto Praktikant
20. november 2011 - 22:27 #5
Hej Erik

Jeg er lidt nybegynder i det her, men hvor i filen skulle det indtastes of hvad er værdierne når jeg ikke er på en server, men bare arbejder på computeren??
Avatar billede erikjacobsen Ekspert
20. november 2011 - 22:32 #6
Det er da helt i orden. Men det lyder som om du ikke har ændret disse værdier i config-filen:

$GLOBALS[ 'DB_HOST' ]  = 'db_host';
$GLOBALS[ 'DB_DB' ]    = 'db_db';
$GLOBALS[ 'DB_USER' ]  = 'db_user';
$GLOBALS[ 'DB_PASS' ]  = 'db_pass';

Når du ikke er på en webhost, skal du selv oprette en database, og gerne en bruger med password, i mysql. Eventuelt kan du bare bruge brugeren "root" lokalt. Gav du den et password da du installerede mysql? Det kan også være tomt. Dvs. noget i retning af:

$GLOBALS[ 'DB_HOST' ]  = 'localhost';
$GLOBALS[ 'DB_DB' ]    = 'hvad_du_finder_paa';
$GLOBALS[ 'DB_USER' ]  = 'root';
$GLOBALS[ 'DB_PASS' ]  = '';
Avatar billede tkanto Praktikant
20. november 2011 - 22:36 #7
Hej igen Erik

Nej, den havde jeg lige misset *ups*

Nu er den så ændret, men nu får jeg så en anden fejl.

"Invalid SQL:

(1046 ) No database selected

Query:

  SELECT session_data
  FROM ds_user_sessions
  WHERE session_id = 'oio41k7lusefok2ua059199kk7'
  AND session_expire > UNIX_TIMESTAMP()"

Vil du lave et savr så du kan få dine point for denne tråd, så kan jeg lave en ny tråd med det nye problem!?
Avatar billede erikjacobsen Ekspert
20. november 2011 - 22:41 #8
Det er så nemt, for jeg samler slet ikke på point, tak.

Har du i mysql oprettet en database? Og hvilket navn har du givet den?
Avatar billede tkanto Praktikant
20. november 2011 - 22:45 #9
Nej det har jeg ikke, for får følgende fejlmeddelelse når jeg prøver at oprette en (ville have kaldt den 'db1')

Access denied for user ''@'localhost' to database 'db1'
Avatar billede erikjacobsen Ekspert
20. november 2011 - 22:48 #10
Jeg kender ikke AMPPS - men det er givetvis godt nok.

Du skal på en eller anden måde logge ind som "root" for at oprette databaser. Hvordan mon man gør det?
Avatar billede tkanto Praktikant
20. november 2011 - 22:54 #11
Det ser ud til at jeg godt kan logge ind (af en eller anden grund er den logget ind som 'soft' og vil ikke logge ud igen. Men når jeg klikker 'Add database" ser det ud til at databasen 'db1' er oprettet!
Avatar billede erikjacobsen Ekspert
20. november 2011 - 22:57 #12
Jeg ved for lidt om AMPPS til at kunne hjælper dig. Prøv evt at bruger "soft" som brugernavn og med tomt password i din configfil. Ellers vent til nogen med erfaring i AMPPS kommer forbi her.
Avatar billede NielsErikP Mester
20. november 2011 - 22:58 #13
Hej..

#7: Jamen du har jo ikke valgt din database "No database selected".

For at blive i Erik terminologi kan du så ik prøve :



  $db = mysql_connect($GLOBALS['DB_HOST'],$GLOBALS['DB_USER'],$GLOBALS['DB_PASS'])or die ('Der kunne ikke forbindes til databasen. Fejl: ' . mysql_error());    //der connectes til databasen
    mysql_select_db($GLOBALS['DB_DB'] ,$db);




Håber det er brugbart!
Avatar billede tkanto Praktikant
20. november 2011 - 23:00 #14
Nu er jeg kommet videre og har tilsyneladende fået oprettet databasen 'db1'. Når jeg så prøver at komme på localhost får jeg denne fejl:

Invalid SQL:

(1046 ) No database selected

Query:

  SELECT session_data
  FROM ds_user_sessions
  WHERE session_id = '6fiqa4646d7ircb45ima27tvv0'
  AND session_expire > UNIX_TIMESTAMP()

Erik TUSIND tak for din hjælp!
Avatar billede erikjacobsen Ekspert
20. november 2011 - 23:02 #15
"No database selected" er sikkert bare på grund af logind-fejl. Så det er mere interessant at finde ud af hvilke brugere, der er, og hvilke password disse brugere har.
Avatar billede tkanto Praktikant
20. november 2011 - 23:04 #16
Niels Erik: Jeg er ikke helt med på hvor du vil have jeg skal sætte det ind? Skal det være i starten istedet for det der allerede står, så får jeg denne fejl:

Parse error: syntax error, unexpected '=' in C:\Users\Thomas Kanto\Desktop\Www\www\admin\config.php on line 4
Avatar billede NielsErikP Mester
20. november 2011 - 23:06 #17
Hej...
Det jeg prøver og sige til dig i #1 og #13... Er at du skal vælge din database, det gør du med følgende :

  http://dk.php.net/manual/en/function.mysql-select-db.php
Avatar billede NielsErikP Mester
20. november 2011 - 23:11 #18
Hej...

#16:
Ja .. Du skal jo vælge din database inden du foretager dig noget på den som udtræk osv... så jow måske så tidligt i filen som muligt.
Avatar billede tkanto Praktikant
20. november 2011 - 23:13 #19
Der er tilsyneladende kun 1 bruger, nemlig 'soft' og kodeordet har jeg sat til '123'.

Det har jeg også ændret i config.php, så den nu ser således ud:

<?php

// MySQL Database Connection
$GLOBALS[ 'DB_HOST' ]  = 'localhost';
$GLOBALS[ 'DB_DB' ]    = 'db1';
$GLOBALS[ 'DB_USER' ]  = 'soft';
$GLOBALS[ 'DB_PASS' ]  = '123'

Men på localhost får jeg følgende fejl:

Cannot select database db1: Access denied for user 'soft'@'localhost' (using password: YES)

Ved jeg ikke er ret god til det her, og sætter virkelig stor pris på jeres hjælp :)
Avatar billede tkanto Praktikant
20. november 2011 - 23:17 #20
Nu er jeg kommet så langt at jeg får følgende fejl ;)

Invalid SQL:

(1146 ) Table 'db1.ds_user_sessions' doesn't exist

Query:

  SELECT session_data
  FROM ds_user_sessions
  WHERE session_id = '6fiqa4646d7ircb45ima27tvv0'
  AND session_expire > UNIX_TIMESTAMP()

Så det må betyde at jeg bare skal igang med at lave tabeller.

Tak for hjælpen begge. Niels Erik du kan lige smide et svar så får du point :)
Avatar billede NielsErikP Mester
20. november 2011 - 23:24 #21
Hej...
Syntes at kunne huske jeg havde lidt samme melding, da jeg startede med at brug Xampp... kender ikke Ammps.
Men jeg afinstallerede Xampp og installerede det igen. oprettede en database og benyttede metoden i #1. Og HOLDTE fingerene fra config filen.

Måske du kan prøve det!
Avatar billede NielsErikP Mester
20. november 2011 - 23:27 #22
Hej...
jamen det kan jeg da gøre, fik jo egentligt mest ud af det selv, hvis jeg kunne have hjulpet dig på vej til en løsning.
Men Svar!!
Avatar billede tkanto Praktikant
21. november 2011 - 09:47 #23
Nej Niels Erik

Det ser ud til, at jeg skal lave tabellerne selv, eller uploade dem fra en fil der hedder install_0.5.0_mysql.sql og det er også fint nok for den fil har jeg :)

Men når jeg prøver at gøre dette via PHPMyAdmin får jeg følgende fejl:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(14) NOT NULL,
  `created` timestamp(14) NOT NULL default '0',
  PRIMARY KEY  (`' at line 5


Er det evt noget du kan hjælpe med?
Avatar billede olebole Juniormester
21. november 2011 - 15:39 #24
<ole>

Generelt vil jeg anbefale dig at anskaffe dig nogle gode bøger om PHP/MySQL. Man kan ikke bare kaste sig hovedkulds ud i et fag og tro, man kan mestre det på charmen alene  *o)

Hvad fejlen angår, så har du vel givet din tabel et navn, som er reserveret til anden brug i MySQL. Som altid ... tjek referencen  =)

/mvh
</bole>
Avatar billede NielsErikP Mester
21. november 2011 - 21:04 #25
Hej.. DKThomz

Det ved jeg ikke om jeg kan, selv er jeg jo ret charmerende *LOL*
Men jeg kan da prøve... Kunne man evt. se den SQL du skriver, når du prøver at oprette dine tabeller.
Avatar billede olebole Juniormester
21. november 2011 - 21:23 #26
@NielsErikP: Tak, jeg kunne umuligt selv have illustreret rigtigheden af min påstand bedre  :D

- og tjekker du referencen, vil du se, at fejl 1064 skyldes brugen af et reserveret ord. Også det har jeg ret i  *o)
Avatar billede NielsErikP Mester
21. november 2011 - 22:11 #27
Hej..

@olebole: Da glad for at kunne være til hjælp, så hjælper du nok mig en anden gang ;-)
Avatar billede tkanto Praktikant
22. november 2011 - 12:26 #28
Hej. Jeg fandt ud af at fejlen skyldes en fejl i SQL'en. Det var et script jeg prøvede at oprette. Det viste sig, at scriptet var beregnet til en ældre version af MySQL.

Fejlen var i flere linjer, hvor der stod "...timestamp(14)...". Når man fjernede (14) i linjen, så den blot stod tilbage med "...timestamp..." virkede det fint og databasen blev oprettet :)

@olebole, jeg er skam også i gang med at læse, både på nettet og i nogle bøger. Men jeg har det nu bedst med "learning-by-doing" ;)

Tak for hjælpen alle!
Avatar billede NielsErikP Mester
22. november 2011 - 12:33 #29
Hej..
Bare du fandt en løsning, så er alt jo som det skal være :-)
Avatar billede olebole Juniormester
22. november 2011 - 16:26 #30
Learning-by-doing er et udmærket supplement, sålænge det foregår under kyndig vejledning - men det kan aldrig erstatte, at man sætter sig grundigt ind i teorien. Desværre bruges vendingen alt for ofte til at undskylde manglende lyst til at fordybe sig i, hvordan man bør kode, og hvorfor  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester