如何在kubernetes上使用密码连接到psql

how to connect to psql using password on kubernetes

我想在 kubernetes 上使用 kubectl exec 命令上的密码连接到 psql,例如

kubectl exec -it postgres -- bash \`psql -h $IP -U admin --password password -p $PORT dbname\`

我试着命令

kubectl exec -it $podid -- bash \`psql -h $IP -U admin --password -p $PORT postgresdb\`

kubectl exec -it $podid -- bash -c "psql -- dbname=postgresql://postgres:password@$ip:$port/postgresdb -c 'INSERT INTO public."user" (user_id,user_pw,user_nm,email,phone,is_admin) VALUES ('admin','admin','admin','admin@admin.com',NULL,true);'" 

但是这些命令不起作用。

如何使用 kubernetes 命令和密码连接到 psql?

你可以这样试试:

kubectl exec -i <plsql podname> -- psql -h <host or service name or localhost> -u <username> -p<password>

由于您只询问命令,我假设您拥有所有部署、服务等

请执行以下命令:

$ kubectl exec -ti <postgresspod-name> -- psql -h <node/host IP> -U postgresadmin --password -p <port> postgresdb
Password for user postgresadmin:

输入密码后,您将连接到 Postgres

尝试
kubectl exec -it <postgresspod-name> bash or sh
当你在容器内时,你可以做
PGPASSWORD=<password> psql -h <host or service name or localhost> -U <username> <dbname>

另一个选项是 kubectl exec -it postgres -- bash \`PGPASSWORD=<password> psql -h <host or service name or localhost> -U <username> <dbname>\`

已接受的答案对我不起作用(未找到命令 PGPASSWORD=<...>)。

这有效:

kubectl  exec -ti postgres -- env PGPASSWORD=$PASSWD psql psql -h <host> -U <username> <dbname>

只对我有用

kubectl exec postgres-postgresql-0 -n nte -- sh -c 'PGPASSWORD=postgres psql -U "postgres" -d "database_name" -c "select * from table_name"'