sql >> データベース >  >> RDS >> Mysql

ユーザーはデータベースにアクセスできません

    localhost %と一致しません MySQLで。あるべきように見えますが、実際にはそうではありません。 [email protected]USAGEの両方 特権、および各データベースの特権。

    または、[email protected] 行う %に一致 。ローカルホストにIPアドレスを使用すると、ローカルホストと同じように機能するように見えますが、そうではありません。 mysql.userには2行必要です テーブル(およびmysql.dbにもあります 両方を有効にするには、テーブルを使用します。

    localhostと127.0.0.1の違いを示すには:

    mysql -h localhostとして接続する UNIXソケットインターフェイスを使用し、TCP/IPをバイパスします。これはパフォーマンスを少し向上させる可能性がありますが、上記のグラントマッチングに影響を与えます。

    mysql -h 127.0.0.1として接続することにより、ローカルTCP/IP接続を強制できます。 。次に、[email protected]%

    したがって、ソケットインターフェースとTCP / IPインターフェースの両方で同じユーザー、パスワード、および特権を取得するには、すべてを実行する必要があります。 次のステートメントの:

    GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...'
    GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*7733323232...'
    GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%'
    GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'localhost'
    GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%'
    GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'localhost'
    


    1. MYSQLのクエリを使用して2文字間のテキストを削除する方法

    2. SQL Server(T-SQL)で列の名前を変更する

    3. PythonからOracleにアクセスするにはどうすればよいですか?

    4. PDOプリペアドステートメントを使用して、識別子(テーブル名またはフィールド名)または構文キーワードをバインドできますか?