• 締切済み

Windows10のpythonからPostgre

バージョンPython2.7.11、バージョンPostgreSQL9.6でPATHも通しています。下記のコードをtest105.py で保存しています import psycopg2 if name == "main": connector = psycopg2.connect(host="localhost",database="pdb",user="pgusr",password="pgpsw") cursor = connector.cursor() sql = "insert into test_table values('1','python')" cursor.execute(sql) sql = "insert into test_table values('2','パイソン')" cursor.execute(sql) sql = "insert into test_table values('3','ぱいそん')" cursor.execute(sql) connector.commit() cursor.close() connector.close() コマンドを実行するとエラーが返ります Traceback (most recent call last): File "test105.py", line 7, in <module> connector = psycopg2.connect(host="localhost",database="pdb",user="psycopg",password="pgpsw") File "C:\Python27\lib\site-packages\psycopg2\__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) psycopg2.OperationalError: FATAL: password authentication failed for user "psycopg" コマンドプロンプトで "netstat -anp tcp" を実行し、ローカルアドレスが "0.0.0.0:5432" で状態が "LISTENING" になっております。 何が原因ですか?ご存知の方お教えください

みんなの回答

noname#224808
noname#224808
回答No.1

これかな?DBがSQLiteじゃないときは別途設定がいるみたいです。 参考↓ http://pwn.hatenablog.com/entry/2014/07/24/175230

mukudog
質問者

お礼

ありがとうございます。英文なので理解するまでに時間がかかりそうです。ゆっくり翻訳しながら拝見します SQLiteは最初からpythonに組み込まれているため使い方は簡単みたいですが外部モジュールはそうはいかないようですPostgreSQL側の設定に問題があるような気がしております

関連するQ&A

  • 連続で実行するには?

    下のように、PostgreSQL に接続して insert を実行するプログラムを書いたのですが、 これらの3つのinsert 文を一気に実行してしまいたい場合、どうすればよいのでしょうか? // insert $sql = "insert into area values (1,'中央区')"; $sql = "insert into area values (2,'東区'); $sql = "insert into area values (3,'西区'); //ここより本文です。 <?php // connect $db_con = pg_connect("","","fuk_gourmet"); if($db_con == false) {print "cannot connect"; exit;} // insert (これだと一つしか実行できない) $sql = "insert into area values (1,'中央区')"; // execute $rs = pg_exec($db_con, $sql); if($rs == false) {print "execute error"; exit;} pg_freeresult($rs); pg_close($db_con); ?>

    • ベストアンサー
    • PHP
  • MySQLから取り出したものを3つに分ける

    MySQLに以下のようなSQLを打ちました。 create table table_list( id int, task varchar(255) ); insert into table_list values(1,'ほげほげ1-1'); insert into table_list values(1,'ほげほげ1-2'); insert into table_list values(2,'ほげほげ2-1); insert into table_list values(2,'ほげほげ2-2'); insert into table_list values(3,'ほげほげ3-1'); そして、空のdiv要素が3つあります。 このデータベースからidの数値別に、div要素へtaskの文字列を入れたいのですが、どうすればいいのでしょうか? SQLで「select * from table_list」をやってからtaskを取り出すのか、3回SQLで「select task from table_list where id=1」のようにするのがよろしいんでしょうか?

    • ベストアンサー
    • PHP
  • PDO+SQLITEでのインジェクション対策について

    こんばんは。 いつもお世話になっております。 PDO+SQLITEで現在以下のようにbindValueを用いてクエリを発行しているのですが・・・ - $sql = $connect->prepare("INSERT INTO test_tbl(name) VALUES(:name"); $sql->bindValue(":name", $_POST["name"]); $sql->execute(); - $_POST["name"]の値をbindValueに移すだけでそのままINSERTしていますが、これだけでインジェクション対策はOKなのでしょうか? 他にも注意したほうが良い事があれば教えて下さい。

    • ベストアンサー
    • PHP
  • python2.5を使用してSQLite3のデータベースを読み込みたいのです。

    いま、python2.5を使用してSQLite3のデータベースを読み込みたいのですが、うまく接続できません。pythonとSQLiteは単体ではうまく起動しているので、問い合わせ方に問題があるようなのですが、参考書のとおりに実行してもエラーが出てしまします。接続の書き方を教えていただければ幸いです。以下には、エラーが出た問い合わせを書きました。違うところがあれば指摘してください。 import sqlite3 con = sqlite3.connect("データベース名") cur = con.cursor() //ここまではうまくいきました。 cur.execute("""create table テーブル名(name text,age text)""") cur.execute("select * from テーブル名") print cur.fetchall()

  • データベースに変数の値を挿入

     HTMLのフォームから、getParameterで取得した値(id,name,club)をデータベースに挿入したいのですが、 String sql="insert into test_table values(id,name,club)";  と記述してもその文字列がそのままテーブルに反映されてしまいます。  もちろん、 String sql="insert into test_table values('12','●田○郎','野球部')"; とあらかじめ記述しておけばこのデータがテーブルに挿入されるのですが・・・。  PHPでは確かvalues('{$id}','{$name}','{$club}')のように記述すればできたので戸惑っています。  JAVAでSQL文に変数を含める場合、どのように記述すればいいのでしょうか?

    • ベストアンサー
    • Java
  • mysqlのsqlスクリプトエラーについて

    バージョンはmysql-4.0.14b-winです。 + mysql-connector-java-3.0.8-stable-bin 昔、このsqlを実行したときはうまくいっていたのですが 最近実行すると以下のようなエラーがでます バージョンのちがいがあるのでしょうか? unique制約で引っかかっているみたいです。 <実行> +----------------------------------------------+ | 1.MYSQLで以下のようにテーブルを作成しました。| +----------------------------------------------+ C:\>mysql\bin\mysqladmin -u root -p CREATE user Enter password: root C:\>mysql\bin\mysql -u root -p user < c:\syain.sql Enter password: root <問題点> 以下のようなエラーがでましたERROR 1170 at line 8: BLOB column 'username' used in key specification without a key length <実行したsql文> syain.sqlの内容は以下のとおりです。-- -- Host: localhost Database: user --------------------------------------------------------- -- -- Table structure for table 'table1' -- create table table1 (     id integer primary key, username text not null unique, password text not null, idnumber text not null, department text not null, mail text not null, extension text not null); -- -- Dumping data for table 'table1' -- --INSERT INTO table1 VALUES (1,'Peter','123456','1201','情報システム部','peter@it.planet.com','101'); INSERT INTO table1 VALUES (1,'Robert','abcdef','1202','情報システム部','robert@it.planet.com','102'); INSERT INTO table1 VALUES (1,'Mike','abcdef','1203','企画部','mike@pl.planet.com','201'); INSERT INTO table1 VALUES (1,'Celline','abcdef','1204','営業部','celine@mk.planet.com','301'); INSERT INTO table1 VALUES (1,'Akira','abcdef','1205','技術部','akira@tec.planet.com','401'); INSERT INTO table1 VALUES (1,'Eric','abcdef','1206','経理部','eric@ac.planet.com','501'); INSERT INTO table1 VALUES (1,'Rika','abcdef','1207','営業部','rika@mk.planet.com','302'); INSERT INTO table1 VALUES (1,'Diana','abcdef','1208','営業部','diana@mk.planet.com','303'); INSERT INTO table1 VALUES (1,'Britney','abcdef','1209','企画部','britney@pl.planet.com','202'); INSERT INTO table1 VALUES (1,'Takuya','abcdef','1210','技術部','takuya@tec.planet.com','402'); ご教授よろしくお願いします

    • ベストアンサー
    • MySQL
  • SQLでできますか?

    SQLでできますか? INSERT INTO test (A) VALUES (B)というSQLを発行したいのですが、このSQLのVALUESのBにあたる部分を正規表現的に指定して、一度のクエリで以下のような結果を得たいのです。 1.テーブルhogeのpiyoカラムの値の先頭がappleになっている行を探す。 2.(1.)で抽出した行のidの値をBとする。 例えば、以下のようにです。 ■皆様が回答してくださるSQL文(1クエリで行いたい) ???????????? ■皆様が回答してくださるSQL文と同等の意味を持つSQL群 INSERT INTO test (A) VALUES (100) INSERT INTO test (A) VALUES (101) INSERT INTO test (A) VALUES (102) ■テーブルhoge _____id_____piyo__________created 1. 100 applebanana 2009/01/02 2. 101 apple_12345 2009/01/03 3. 102 appleXXXXXX 2009/01/04 4. 103 bananananan 2009/01/05 5. 104 ringogogogo 2009/01/06 分かりにくい説明ですが、お詳しい方、どうかご回答の程を宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • SQL Server 2005 Express で CDate()関数の代替?

    SQL Server 2005 Expressで Create table Test( date_test datetime ); に追記する場合cdateを使いたいのですが Insert文で 「insert into test(date_test) values(CDate('1999/09/14 23:23:00'))」 とすると 「'CDate' は 組み込み関数名 として認識されません。」っと出てしまいます 他の関数名に変わっているのでしょうか??

  • shからPL/SQLブロックを実行する方法

    Solaris上でshスクリプト中からPL/SQLを記述したファイルを呼び出して、Oracleのテーブルに対して操作したいのですが、 test.shファイル #/bin/sh sqlplus userid/password@ddzk test.sqlファイル DECLARE … BEGIN INSERT INTO table VALUES( …  ) END; / コマンドラインから $./test.sh を実行すると、 ./test.sh: sqlplus: 見つかりません。 と表示されます。 どなたかshスクリプトからPL/SQLで記述したファイルを実行する 方法をご存知の方、ご教示願います。

  • 指定された趣味を持つメンバーがいるグループを抽出するSQL

    グループテーブル、メンバーテーブル、趣味テーブルの3つのテーブルがあります。 あるメンバーはあるグループに属しており、趣味を1つ持っています。 以下がそのSQLです。 CREATE TABLE groups ( g_id int primary key ); CREATE TABLE members ( m_id int primary key , g_id int , h_id int ); CREATE TABLE hobbies ( h_id int primary key, h_name text ); INSERT INTO groups VALUES ( 1 ); INSERT INTO groups VALUES ( 2 ); INSERT INTO groups VALUES ( 3 ); INSERT INTO members VALUES ( 1, 1, 1); INSERT INTO members VALUES ( 2, 1, 3); INSERT INTO members VALUES ( 3, 1, 4); INSERT INTO members VALUES ( 4, 1, 4); INSERT INTO members VALUES ( 5, 2, 1); INSERT INTO members VALUES ( 6, 2, 2); INSERT INTO members VALUES ( 7, 2, 3); INSERT INTO members VALUES ( 8, 3, 2); INSERT INTO members VALUES ( 9, 3, 3); INSERT INTO members VALUES ( 10, 3, 4); INSERT INTO hobbies VALUES ( 1, 'sports' ); INSERT INTO hobbies VALUES ( 2, 'music' ); INSERT INTO hobbies VALUES ( 3, 'book' ); INSERT INTO hobbies VALUES ( 4, 'drive' ); 指定された趣味を持つメンバーがいるグループを抽出するにはどうすればいいでしょうか? 例えば、「読書が趣味なメンバーとドライブが趣味なメンバーがいるグループは?」「グループ1とグループ3」のような感じです。 一応自分で考えてみたのが、以下ですが、これだと趣味の指定が増減すると大きくSQLが変わってしまいます。 もっといいやり方はないでしょうか? 私はPostgreSQL8を使ってますが、汎用的なSQLであれば、そっちの方がいいです。 SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'drive' INTERSECT SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'book';