21

次のスクリプトを試しましたが、残念ながら機能しません。無料の MySQL データベース プロバイダーを使用しています。何か案は?

import MySQLdb

myDB = MySQLdb.connect(host="208.11.220.249",port=3306,user="XXXXX",passwd="XXXXX",db="XXXXX")
cHandler = myDB.cursor()
cHandler.execute("SHOW DATABASES")
results = cHandler.fetchall()
for items in results:
    print items[0]

現在、次のエラーが発生しています。

super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1044, "Access denied for user 'XXXXX'@'%' to database 'XXXXX'")
4

4 に答える 4

13
 GRANT ALL
 ON  *.*
 TO user@192.168.39.17  -- client ip address
 IDENTIFIED BY 'pwd';

編集

userこれは、がすべてにアクセスできるようにするためにデータベースで実行する SQL です。pwduserパスワードです。

基本的に、この回答は、接続の問題が資格情報の問題であることを前提としています。

于 2012-10-19T11:20:20.547 に答える
6

これは私がすることです

  1. そのマシンでポートが実際に開いているかどうかを確認します。
  2. 接続元のマシンで console/cmd/terminal を開き、 を使用して接続できるかどうかを確認しますmysql -u XXXX -h 208.11.220.249 -p。mysql クライアントが接続できない場合、python を使用して接続する方法はありません。
于 2012-10-19T11:41:01.550 に答える
1

このユーザーでデータベースに接続する権限がありません。次の手順を実行します:

1.mysql DB に接続してみます: mysql -h208.11.220.249 -uXXXXX -pXXXXX XXXXX

2.DBへの接続権限がない場合は、リモート権限を持つユーザーを作成してみてください

GRANT ALL ON DB.* -- データベース名 TO user@ip -- クライアント IP アドレス IDENTIFIED BY 'pwd';

3.最後に my.cnf をチェックします。"bind-address" は 0.0.0.0 でなければなりません。すべてのリモート アドレスを接続する場合。

于 2012-10-19T15:50:14.130 に答える
0

mysql でデータベースを開き、次のように入力します。

mysql> GRANT ALL ON *.* TO root@'x' IDENTIFIED BY 'Your-password'

x は、データベースにアクセスするユーザーの IP アドレスです。

詳細については、このリンクを使用してください: MySQL クライアントがリモート MySQL サーバーに接続できるようにする方法

于 2018-06-25T11:13:28.517 に答える