File "D:\python\projected\helloword\venv\Lib\site-packages\psycopg2_init_.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError
数据库
-- auto-generated definition
create table table_name
(
id integer not null
constraint table_name_pk
primary key,
sex pg_enum not null,
name varchar
);
alter table table_name
owner to odoo11;
#!/usr/bin/python
# -*- coding: utf-8 -*-
from flask import Flask
import MySQLdb
app = Flask(__name__)
mysql_host = "mysql"#这些都能看懂吧。
mysql_user = "root"
mysql_pwd = "root"
mysql_db_name = "demo"
def query_db(sql):
db = MySQLdb.connect(mysql_host, mysql_user, mysql_pwd, mysql_db_name)
cur = db.cursor()
try:
cur.execute(sql)
result = cur.fetchall()
except:
print("error: sql:" + sql)
cur.close()
db.close()
return result
def update_db(sql):
print(sql)
db = MySQLdb.connect(mysql_host, mysql_user, mysql_pwd, mysql_db_name)
cur = db.cursor()
try:
cur.execute(sql)
except:
print("error: sql:" + sql)
db.commit()
cur.close()
db.close()
@app.route("/list")
def list():
results = query_db(" select id,name from `demo`.`user_info` ")
out = "results:\n"
for result in results:
id = result[0]
name = result[1]
out += "id:" + str(id) + ",name:" + name +"\n"
return out
@app.route("/add")
def add():
sql = " insert ignore into `demo`.`user_info`(`name` ) values ('zhangsan') "
update_db(sql)
return "ok"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
连接数据库代码有问题
你贴这点信息,好像不能看出什么问题。
你可以先用一些客户端连接一下数据库确定是不是数据库方面的问题,之后就是你的代码问题了,然后看一下端口号之类的
能贴一下你连接数据库的代码吗
还有psycopg2.OperationalError后面的内容
题主,你看下你的数据库连接代码:
我的可以跑,这是我写的。
def connect_db():
try:
conn = psycopg2.connect(database='postgres', user='postgres',
password='123456', host='127.0.0.1', port=5432)
except Exception as e:
error_logger.error(e)
else:
return conn
return None
补充:
如果你是跑在容器里边的话:
//添加Postgres或volume_name代替localhost。
conn=p.connect(dbname='app_db', user='postgres', host='volume_name_of_postgres_in_docker_compose', password='samet', port=5432
数据库连接定义或者配置的有问题,建议,把你的数据库连接部分代码贴一下
pg库连接有没有问题,没问题的话,从代码入手