こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

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;

としてみましたが、できませんでした。似た状況の方、解決策をご存知の方、みえましたらご教授願いたいです。

投稿日時 - 2015-11-18 14:01:52

QNo.9082182

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.3

> 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 は詳しく理解していないので違っていましたらすみません。

投稿日時 - 2015-11-18 19:25:21

補足

試してみましたが、変わりませんでした。

投稿日時 - 2015-11-18 19:57:03

ANo.2

javaなりpythonなりを動かしているマシンから、mysqlコマンドで該当ユーザー、パスワードありでの接続は可能でしょうか?
もしそれが可能なのであれば、mysql側の問題ではなく、プログラム側の問題だと思います。
逆にmysqlコマンドでも接続できない場合は、mysqlの設定の問題となります。
まずは、この切り分けから行う必要があると思います。
既に実施済みでしたら失礼致しました。

投稿日時 - 2015-11-18 16:50:36

補足

回答ありがとうございます。

pythonからも試していますが、同じ症状です。
具体的には、
cnx = mysql.connector.connect(host='localhost',
port=3306,
user='root',
passwd="root")

のようにしていて、ターミナルから、mysql -u root -pで
パスワードをrootとすると、ログインできます。
passwdなしだと一応接続できる状況です。

投稿日時 - 2015-11-18 17:17:10

ANo.1

> 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 ;

投稿日時 - 2015-11-18 14:33:55

補足

grant all privileges on *.* to 'user'@'localhost' identified by 'password' with grant option ;

としてみましたが、接続できませんでした。
文字コードなどが原因ということはあるのでしょうか。

投稿日時 - 2015-11-18 16:24:35

-広告-
-広告-
-広告-
-広告-