I can't access my MySQL database using the private network.

I am using the unit:php8.2 docker image to deploy a Laravel application. I used MYSQLPRIVATEURL variable to connect to the database but I get the error "SQLSTATE[HY000] [2002] phpnetworkgetaddresses: getaddrinfo for mysql.railway.internal failed: nodename nor servname provided, or not known"

24 Replies

f89ef06b-231c-4edf-a893-25cbf3c4902b


brody
EMPLOYEE

2 years ago

is that an alpine based image?



I think it's based on debian


brody
EMPLOYEE

2 years ago

please add a 3 second sleep / delay before you connect to the database


I tried it but it still has the same problem, in fact, minutes after the deployment I tried to execute:
railway run sh -c "ping mysql.railway.internal"

but I get:
"ping: cannot resolve mysql.railway.internal: Unknown host"


brody
EMPLOYEE

2 years ago

railway run runs the given command locally


Oh, i'm adding the sleep in my Dockerfile.


brody
EMPLOYEE

2 years ago

please show me how you are implementing the sleep



brody
EMPLOYEE

2 years ago

looks good


I don't have the host resolution issue, but apparently there is a restriction for a query in the migration:

SQLSTATE[HY000] [2002] Connection refused (Connection: mysql, SQL: select tablename as name, (datalength + indexlength) as size, tablecommentas comment, engine as engine, tablecollation as collation from informationschema.tables where tableschema = 'forge' and tabletype in ('BASETABLE', 'SYSTEM VERSIONED') order by table_name)


brody
EMPLOYEE

2 years ago

is your database in the same project as this app?


Yeah.

1218662237062037500


brody
EMPLOYEE

2 years ago

railway does not place any such restrictions on the databases besides the amount of resources it can use (cpu / mem /disk based on your plan type)


brody
EMPLOYEE

2 years ago

are these logs coming from the build or deploy logs


Deply logs


Are the env vars availables in build stage?


brody
EMPLOYEE

2 years ago

yes but the private network is not


It just worked, I moved the "php artisan optimize" command which caches the configuration (includes the DB credentials) and maybe it was pointing to a non-existent database at the execution stage.


This is the final configuration.

1218666527461609500


brody
EMPLOYEE

2 years ago

awsome


How can we mark this as solved?


brody
EMPLOYEE

2 years ago

already have


Loading...