1. ホーム
  2. データベース

MySql への JDBC 接続エラー com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.MySQLSyntaxErrorException: 不明なデータベース 'test'

2022-02-27 05:41:01

今日、eclipse を使って MySql データベースへの接続を学習しているときに、警告とエラーが直接表示されました。

警告

Sat Nov 17 14:14:35 GMT+08:00 2018 WARN: サーバーの本人確認を行わずにSSL接続を確立することは推奨されません。.45+、5.6.26+、5.7.6+の要件 explicitオプションが設定されていない場合、SSL接続はデフォルトで確立する必要があります。SSLを使用しない既存のアプリケーションに準拠するため、verifyServerCertificateプロパティは「false」に設定されています。useSSL=falseを設定して明示的にSSLを無効にするか、useSSL=trueを設定してサーバー証明書検証のためのトラストストアを提供する必要があります。

出演理由。

mysql 5.7以降では、SSLセキュアログインの使用を推奨していますが、私は設定していなかったので、この警告が表示されました。

回避策

接続URLはjdbc:mysql//server address/database nameで、その後にMySqlのログインユーザ名とパスワードの2つの引数が続きます。

元のURLを変更する : static final String DB_URL = "jdbc:mysql://localhost:3306/test,"root", "123456".Jdbc:mysql://localhost:3306/test,"root", "123456"

に変更する。 : static final String DB_URL = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"," ;root", "123456"

エラー

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.MySQLSyntaxErrorException: 不明なデータベース 'test'

出演の理由

間違ったデータベース名に接続するようにURLが設定されています。インターネットから見つけたURLで、当時は意味がわからずそのままコピーしてしまったので、データベースのテストができず、自分の作ったデータベース名が他の人と違っているのです。

解決策

jdbc:mysql://localhost:3306/ テスト ?useUnicode=true&characterEncoding=utf-8&useSSL=false","root", "123456"

接続URLはjdbc:mysql//server address/database nameで、その後にMySqlのログインユーザ名とパスワードをそれぞれ2つずつ引数で指定します。

データベース名をMySqlで作成したデータベース名に変更するか、URLと同じ名前のデータベースを新規に作成します(青いテストがデータベース名です)。

作成されたデータベースの名前は、以下の矢印で示されています。