質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • MySQL

    5516questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • PostgreSQL

    992questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Scala

    174questions

    ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

  • Play Framework 2

    101questions

    Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

play,scalaでPostgreSQLに接続しようとすると[PSQLException: ERROR: syntax error at or near "`" …のエラーが出てしまう

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 162

 前提・実現したいこと

play,scalaを用いてCRUDを行う簡単なwebアプリケーションを作成しています。
webアプリケーションはgithubで公開されていたもので、コードをそのまま使いMySQLを使ってlocal環境で動かすことには成功しました。

次にpostgreSQLでの動作を試みたのですが、dbを作り、コードをpotgreSQLへ接続するように書き換え(たつもり)動かしてみると下記のようなエラーメッセージが出てしまいました。

 発生している問題・エラーメッセージ

[info] play.api.Play - Application started (Dev)
[info] c.z.h.HikariDataSource - db - Started.
[info] c.z.h.p.PoolBase - db - Driver does not support get/set network timeout for connections. (org.postgresql.jdbc.PgConnection.getNetworkTimeout() メソッドはまだ実装されていません。)
[error] application - 

! @788cf183i - Internal server error, for (GET) [/memos] ->

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[PSQLException: ERROR: syntax error at or near "`"
  ポジション: 68]]
    at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:255)
    at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:182)
    at play.core.server.AkkaHttpServer$$anonfun$$nestedInanonfun$executeHandler$1$1.applyOrElse(AkkaHttpServer.scala:251)
    at play.core.server.AkkaHttpServer$$anonfun$$nestedInanonfun$executeHandler$1$1.applyOrElse(AkkaHttpServer.scala:250)
    at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:412)
    at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
    at play.api.libs.streams.Execution$trampoline$.execute(Execution.scala:70)
    at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:68)
    at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:284)
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "`"
  ポジション: 68
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2412)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2125)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:297)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
    at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:158)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
    at slick.jdbc.StatementInvoker.results(StatementInvoker.scala:38)

 試したこと

usr/local/Cellar/postgresql/10.4/share/postgresql/postgresql.conf.sample

-#listen_addresses = 'postgresql'
-#port = 5432

を下記のように書き換えたりということをしたくらいで、他のことはほとんど行っていません。
この前後でエラーメッセージにこれといった変化は見られませんでした。

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'        # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost'; use '*' for all
                    # (change requires restart)
port = 5432                # (change requires restart)
#max_connections = 100            # (change requires restart)
#superuser_reserved_connections = 3    # (change requires restart)
#unix_socket_directories = '/tmp'    # comma-separated list of directories
                    # (change requires restart)
#unix_socket_group = ''            # (change requires restart)
#unix_socket_permissions = 0777        # begin with 0 to use octal notation
                    # (change requires restart)
#bonjour = off                # advertise server via Bonjour
                    # (change requires restart)
#bonjour_name = ''            # defaults to the computer name
                    # (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min        # 1s-600s
#ssl = off
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
#ssl_dh_params_file = ''
#ssl_cert_file = 'server.crt'
#ssl_key_file = 'server.key'
#ssl_ca_file = ''
#ssl_crl_file = ''
#password_encryption = md5        # md5 or scram-sha-256
#db_user_namespace = off
#row_security = on

# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off

# - TCP Keepalives -
# see "man 7 tcp" for details

#tcp_keepalives_idle = 0        # TCP_KEEPIDLE, in seconds;
                    # 0 selects the system default
#tcp_keepalives_interval = 0        # TCP_KEEPINTVL, in seconds;
                    # 0 selects the system default
#tcp_keepalives_count = 0        # TCP_KEEPCNT;
                    # 0 selects the system default

 補足情報(FW/ツールのバージョンなど)

play 3.1.2
play-slick 3.0.2
slick-codegen 3.2.1
mysql-connector-java 5.1.42
postgresql 42.0.0.jre7
akka = 2.5.6

参考にさせて頂いた記事
[https://qiita.com/kouares/items/ab221443571bcba40bd1#%E3%81%BE%E3%81%A8%E3%82%81]

イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+2

Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "`" ポジション: 68

syntaxエラーが出ています。 "`"はMySQLでテーブル名や項目名の区切りとして使用されるもので、Postgresで同様の記述はsyntaxエラーです。

生成されているものやコード内の"`"を検索して確認されて下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/12 23:00

    回答ありがとうございます!
    特にここを重点的にみるといいなどのポイントはありますでしょうか。

    キャンセル

  • 2018/06/13 00:03

    play,scalaには詳しくないので、残念ながら勘所はありません。

    キャンセル

0

pg_hba.confの設定不良じゃないかな。
20.1. pg_hba.confファイル
どういう経路でどういうユーザーがどういう認証方法によって検証するか、的なことを定義してあって、
これがまずいと例えばpsqlからはつながるけどwebからつながらないとか起こりうる。

たぶん、

host       database  user  address  auth-method  [auth-options]

な行をpg_hba.confに追記することになると思う。
database, user, address, auth-methodあたりを環境に合わせて書き換えて、
ホスト名指定で、指定されたデータベースに、どのユーザー名でどういう認証の仕方をするか、
auth-methodはmd5かなパスワード認証するなら。
addressはwebからの接続なので自ローカルIPアドレスの127.0.0.1とかで。
別の業として、自ホスト名の行もあるとローカルでの使用上便利かも。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/12 23:05

    回答ありがとうございます!
    pg_hba.confの設定、確認してみます。
    また、homebrewを使ってpostgreSQLをインストールをした関係か、pg_hba.confが/usr/local/Cellar/postgresql/10.4/share/postgresql/pg_hba.conf.sampleの位置にあり、.sampleという拡張子がついているのですが、この拡張子は変更すべきものなのでしょうか。

    キャンセル

  • 2018/06/13 09:57

    あくまで使用されるのは pg_hba.conf であり、インストーラー(?)がサンプルとして作ったと思われる pg_hba.conf.sample ではありません。コピーして pg_hba.conf とした上で環境に合わせて書き換えるのが筋でしょう。
    余談ですが、同じパスに postgres.conf という別の設定ファイルもあり、listenするアドレスの指定やポート番号の指定などもありますので、他のアドレスから直接接続する際は見直しが必要になります。
    (ただ、今回のエラーメッセージの件に関してはsaziさんの回答のほうがしっくりきます。)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    spring+tomcat+postgreSQL+linuxで接続エラー

    Spring boot + Doma2 + PostgreSQL + tomcatでWEBアプリ開発を行っております。 <使用ミドルウェア> spring boot:1.3

  • 受付中

    postgresqlDBに接続できない

    PostgreSQL9.3をWindowsにセットアップしてJava(Eclipse)から接続しようとすると下記のようなエラーが発生しました。 pg_hba.confの中身をtr

  • 解決済

    検索条件をViewで入力し、Java側でTIME型のデータベース参照をしたいです。

    前提・実現したいこと SpringMVC,PostgreSQLを用いて、 開始時間と終了時間の間のデータをデータベースから拾ってくる。 結果をViewで表示したいです。 検

  • 解決済

    PostgreSQLのアップグレードについて

    前提・実現したいこと 現在、CentOSにてPostgreSQL9.3を使用しています。 UPSERTやパラレルクエリを使用したい為、 PostgreSQL9.6にアップ

  • 解決済

    docker-composeでのPostgreSQL接続

    前提・実現したいこと dockerの練習として、docker-composeでpostgresqlを扱おうとしています。 発生している問題・エラーメッセージ 0 info

  • 解決済

    where句にcase文

    あるテーブルから男女どちらか、または両方のデータを取得するようなSQLを作成したいのですがうまくいきません。お力を貸していただけたらと思います。 現在作っているSQLは以下の

  • 解決済

    postgresユーザーでpsqlコマンドが成功しません

    前提・実現したいこと postgresqlを利用できるようにしたいです。 postgresユーザーにスイッチして psql コマンドを実施するとIdent認証に失敗します。

  • 解決済

    DBの更新(Webアプリケーション)

    現在、趣味で体重管理アプリケーションなるものを作成しております。 開発環境はEclipse4.6 言語はJavaです。 ユーザーの名前や身長、体重を登録する画面を作成しているのです

同じタグがついた質問を見る

  • MySQL

    5516questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • PostgreSQL

    992questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Scala

    174questions

    ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

  • Play Framework 2

    101questions

    Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

  • トップ
  • Scalaに関する質問
  • play,scalaでPostgreSQLに接続しようとすると[PSQLException: ERROR: syntax error at or near "`" …のエラーが出てしまう