sql >> データベース >  >> Database Tools >> phpMyAdmin

MySQLデータベースをリモートサーバーに移動した後、ユーザーのアクセスが拒否されました

    MySQLのアクセス許可は、接続先のアドレスとユーザーに基づいています。したがって、 [email protected] および [email protected] 2つの個別の権限セットがあります。コードとデータベースが同じサーバー上にある場合は、num8erで説明したようにlocalhostを127.0.0.1に変更するとおそらく機能します。

    PHPが存在するボックスへのターミナルアクセスがある場合は、これを使用してphpに関係することをすべて除外して直接接続してみることができます。

    mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
    

    -pの間にスペースがないことに注意してください とパスワード。成功すると、database内のテーブルのリストが表示されます 。

    他のユーザーまたは別のホスト名/IPへのアクセスを許可するには、これに沿って何かを実行する必要があります(ただし、要件に基づいて、より制限されたアクセス許可を持つ別のユーザーを実際に作成する必要があります)。

    GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
    

    ここでMySQLのGRANTに関するドキュメントを確認してください- http://dev.mysql .com / doc / refman / 5.7 / en / grant.html

    ちなみに、少なくともmysql_real_escape_stringを使用せずに、古いデータをクエリに送り込まないでください。 ( http://php.net/manual/en/ function.mysql-real-escape-string.php )事前にその上にあります。PDO( http://phpを調べることもできます。 net / manual / en / book.pdo.php )これは、現在非推奨のmysql_よりも一般的に好まれています 機能




    1. rowguid列に値を入力する方法は?

    2. 新しいスキーマがテーブルプロパティペインに表示されないのはなぜですか?

    3. MySQLで遅延制約を定義する方法

    4. T-SQLで単一のフィールド値を複数の固定長列値に分割する