Vianetsintä: Tietokanta
Korjaa yleisiä tietokantayhteyden ja kyselyiden ongelmia.
Yhteys evätty
Virhe: ECONNREFUSED 127.0.0.1:5432 tai connect ECONNREFUSED 127.0.0.1:27017
Tämä virhe tarkoittaa, että 1DevTool otti yhteyttä yhteysmerkkijonossasi olevaan isäntään ja porttiin, mutta siellä ei ollut mitään kuuntelemassa. Tietokantapalvelin ei joko käy tai kuuntelee eri portissa.
Korjaukset:
- Tarkista onko tietokanta käynnissä. PostgreSQL:lle: suorita
pg_ctl statusTerminalissa. MySQL:lle:mysqladmin status. Redisille:redis-cli ping(sinun pitäisi saadaPONG). Käynnistä palvelu jos se on pysäytettynä. - Tarkista portti. Oletusportit ovat 5432 (PostgreSQL), 3306 (MySQL/MariaDB), 27017 (MongoDB) ja 6379 (Redis). Vertaa
DATABASE_URL:ssasi olevaa porttia siihen porttiin, jota tietokantasi todella käyttää. - Docker-kontit. Jos tietokantasi käy Docker-kontin sisällä, tarkista että kontti käy komennolla
docker ps. Jos sitä ei listata, käynnistä se komennolladocker start <kontin-nimi>. Varmista myös, että kontin portti on julkaistu isäntäkoneeseesi (etsi0.0.0.0:5432->5432/tcpdocker ps-tulosteesta).
Todennus epäonnistui
Virhe: password authentication failed for user "postgres" tai Access denied for user 'root'@'localhost'
Yhteysmerkkijonosi käyttäjätunnus tai salasana ei vastaa tietokantapalvelimen odottamaa.
Korjaukset:
- Tarkista
DATABASE_URL:ssasi tai yhteysasetuksissasi oleva käyttäjätunnus ja salasana uudelleen. On helppo sekoittaa Supabase-tilin salasana tietokannan salasanaan — ne ovat eri asioita. Käytä Supabase-hallintapaneelissa kohdassa Asetukset → Tietokanta näkyvää salasanaa. - Erikoismerkit salasanoissa. Jos salasanasi sisältää
@,#,/tai:, nämä merkit täytyy URL-koodata yhteysmerkkijonossa. Esimerkiksi@muuttuu%40:ksi ja#muuttuu%23:ksi. Salasana kutenp@ss#wordkirjoitettaisiinp%40ss%23wordURL:ssa.
SSL/TLS vaaditaan
Virhe: SSL connection has been closed unexpectedly tai server requires SSL but client does not support it
Monet pilvi-tietokantapalveluntarjoajat (Supabase, Neon, Railway, Render) vaativat salattuja yhteyksiä.
Korjaus: Lisää ?sslmode=require PostgreSQL-yhteysmerkkijonosi loppuun:
postgresql://user:pass@host:5432/db?sslmode=require
MongoDB Atlasille käytä mongodb+srv://-skeemaa yhteysmerkkijonossasi — se ottaa TLS:n automaattisesti käyttöön eikä tarvitse ylimääräistä parametriä.
Kysely aikakatkaistaan
Syy: kysely skannaa liikaa dataa tai 1DevToolin ja tietokannan välinen verkkoyhteys katkesi kesken kyselyn.
Korjaukset:
- Lisää
LIMIT-lauseke kyselyysi dataa tutkiessasi. Esimerkiksi:SELECT * FROM orders LIMIT 100. - Jos tietty kysely on aina hidas, tarkista onko
WHERE-lausekkeesi sarakkeilla indeksit.EXPLAIN ANALYZE <kyselysi>-komennon suorittaminen SQL-editorissa näyttää sinulle kyselysuunnitelman. - Jos aikakatkaisut tapahtuvat satunnaisesti, tarkista verkkosi. VPN-yhteydet voivat erityisesti aiheuttaa epävakaata tietokantayhteyttä.
MongoDB: Erikoismerkit salasanassa
Jos MongoDB-salasanasi sisältää @, /, : tai #, nämä merkit täytyy URL-koodata yhteysmerkkijonossa. Näillä merkeillä on erityinen merkitys URL:ssa ja ne rikkovat jäsentämisen käytettynä kirjaimellisesti.
Yleisiä koodauksia: @ → %40, # → %23, / → %2F, : → %3A.
Esimerkki: salasana my@secret#pass muuttuu my%40secret%23pass:ksi yhteysmerkkijonossa.
Ei voi yhdistää Docker-konttiin
Jos tietokantasi käy Docker-kontin sisällä ja yrität yhdistää 1DevToolista (joka käy isäntäkoneellasi), älä käytä localhost-osoitetta yhteysmerkkijonossasi. Isäntäkoneelta localhost viittaa isäntäkoneeseen itseen — ei konttiin.
Käytä sen sijaan host.docker.internal:
postgresql://user:[email protected]:5432/db
Tämä erityinen isäntänimi selvittää aina isäntäkoneesi Docker-kontin sisältä ja oikeaan loopback-liitäntään isäntäpuolelta.