-2
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;

しかし、PHP から接続しようとすると:

mysql_connect("localhost", "newuser", "password");

newuser の場合:

Access denied for user 'newuser'@'localhost' (using password: YES)

しかし、ルート接続は成功します。

「newuser」が接続できないのはなぜですか?

奇妙ですが、mysql_connect でエラーが表示されますが、PDO を使用すると正常に接続できます。PHP バージョン 5.4.13 では、mysql_connect 関数に問題がある可能性があります。

解決済み:開発者は mysql_connect("127.0.0.1", "newuser", "evtevtetv$q"); を使用します。そして php は evtevtetv* $q * を変数として認識します。

4

3 に答える 3

1

これを試したらどうですか?

CREATE USER 'newuser';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
于 2013-03-26T16:48:28.203 に答える
1

これを試して

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;

WITH GRANT OPTION は、権限を付与するユーザーがさらに権限を付与できることを意味します。

create user コマンドで使用することはありません

于 2013-03-26T16:48:29.567 に答える
1
  1. コマンドラインから接続できますか?そのようです

    mysql -u newuser -p 
    

    できる場合は、PHP に問題がある可能性があります。

  2. 変更を有効にするために、MySQL を再起動する必要がある場合があります。

  3. アレクセイが言ったよう@'localhost'に、問題を引き起こしている可能性があるため、クエリから を削除してユーザー名を作成してみてください。

  4. また、root として MySQL にログインし ( mysql -u root -p)、ユーザーが存在するSELECT * FROM mysql.user;かどうか、ユーザー名が存在するかどうか、および権限が正しいかどうかを確認して、ユーザーが実際に作成されていることを確認する必要があります。

于 2013-03-26T16:55:34.193 に答える