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 MYSQL_PRIVATE_URL variable to connect to the database but I get the error "SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql.railway.internal failed: nodename nor servname provided, or not known"23 Replies
Project ID:
f89ef06b-231c-4edf-a893-25cbf3c4902b
f89ef06b-231c-4edf-a893-25cbf3c4902b
is that an alpine based image?
I think it's based on debian
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"
railway run
runs the given command locallyOh, i'm adding the sleep in my Dockerfile.
please show me how you are implementing the sleep
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 table_name as
name
, (data_length + index_length) as size
, table_commentas comment
, engine as engine
, table_collation as collation
from information_schema.tables where table_schema = 'forge' and table_type in ('BASETABLE', 'SYSTEM VERSIONED') order by table_name)is your database in the same project as this app?
Yeah.
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)
are these logs coming from the build or deploy logs
Deply logs
Are the env vars availables in build stage?
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.
awsome
How can we mark this as solved?
already have