0

これをphpMyAdminで実行しました。

これらの行を実行しました:

CREATE USER root IDENTIFIED BY PASSWORD '';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

接続しようとすると、次のようになります。

接続に失敗しました: SQLSTATE[HY000] [1045] ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: NO)

$dsn = 'mysql:dbname=one';
$user = 'root';
$password = '';
$pdo = "Not set";
try{
    $pdo=new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(Exception $ex){
    echo "Connect failed: " . $ex->getMessage();
}

上記の接続は以前は機能していましたが、現在は機能していません (XAMPP に切り替えたため)。

4

4 に答える 4

1

root ユーザーがパスワードを持っていないことを確認しますか? これを確認するためにPhpMyAdminをインストールして い ますか?

問題が特権ではない場合、それはおそらくポートです。MySQL のデフォルト ポートは 3306 であるため、MySQL のポートが現在 82 である場合は、接続にポートを追加する必要があります。

于 2012-12-12T14:35:12.087 に答える
0

ユーザー仕様の作成を確認してください。アカウント名には別の構文を使用する必要があるようです。

  • アカウント名の構文は「user_name」@「host_name」です。

だから、のようなもの CREATE USER 'root'@'localhost' IDENTIFIED BY PASSWORD '';。あなたの場合ですが、rootユーザーのCREATE USER 'root'@'%';使用はお勧めしませんでした。'%'

于 2012-12-12T14:37:43.547 に答える
0

権限を変更した後、権限をフラッシュしていますか?

実行FLUSH PRIVILEGES;して、サーバーに許可テーブルを再ロードするように指示する必要があります。

于 2012-12-12T14:39:11.733 に答える
0

ホスト%は には適用されませんlocalhost。localhost のアクセス許可を個別に付与する必要があります。

于 2012-12-12T14:50:43.953 に答える