- 締切済み
javaやpythonからmysqlへ接続
javaやpythonからmysqlへ接続を試みています。 localhostにユーザー(rootでも作成したuserでも)を指定して接続しようとしているのですが、 パスワードなしだと接続できて、パスワードありだと、 Error: 1045 (28000): Access denied for user 'user' (using password: YES) となり、接続できません。 grant all privileges on *.* to 'user'@"%" identified by 'password' with grant option ; flush privileges; としてみましたが、できませんでした。似た状況の方、解決策をご存知の方、みえましたらご教授願いたいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- h271015
- ベストアンサー率71% (62/87)
> cnx = mysql.connector.connect(host='localhost', > port=3306, > user='root', > passwd="root") mysqlコマンドでの接続はできるとのことですので、引数 passwd の指定を password にする、というのではどうでしょうか。 https://dev.mysql.com/doc/connector-python/en/connector-python-example-connecting.html MySQL Connector/Python は詳しく理解していないので違っていましたらすみません。
- yossy_kt
- ベストアンサー率50% (103/203)
javaなりpythonなりを動かしているマシンから、mysqlコマンドで該当ユーザー、パスワードありでの接続は可能でしょうか? もしそれが可能なのであれば、mysql側の問題ではなく、プログラム側の問題だと思います。 逆にmysqlコマンドでも接続できない場合は、mysqlの設定の問題となります。 まずは、この切り分けから行う必要があると思います。 既に実施済みでしたら失礼致しました。
補足
回答ありがとうございます。 pythonからも試していますが、同じ症状です。 具体的には、 cnx = mysql.connector.connect(host='localhost', port=3306, user='root', passwd="root") のようにしていて、ターミナルから、mysql -u root -pで パスワードをrootとすると、ログインできます。 passwdなしだと一応接続できる状況です。
- h271015
- ベストアンサー率71% (62/87)
> grant all privileges on *.* to 'user'@"%" identified by 'password' with grant option ; flush privileges; 上記grant文の 'user'@"%" の指定で、ユーザ名:user で外部のどのサーバからでも接続できるようになりますが、localhost(127.0.0.1)からの接続は対象外です。 localhostからの接続も許可する場合は、'user'@'localhost'というアカウントの権限設定をする必要があるのではないかと思います。 grant all privileges on *.* to 'user'@'localhost' identified by 'password' with grant option ;
補足
grant all privileges on *.* to 'user'@'localhost' identified by 'password' with grant option ; としてみましたが、接続できませんでした。 文字コードなどが原因ということはあるのでしょうか。
補足
試してみましたが、変わりませんでした。