接続プール構成にaccess denied for user'root'@'localhost'(using password:YES)異常が発生しました

5309 ワード

私は入門したばかりの白で、最初からjavaを独学して、先生の指導がなくて、だから実際の操作の中で出会ったすべての小さい問題はすべて自分で解決しなければならなくて、本文は私がデータベースを配置する中で出会った面倒で、ついでに記録して、後で忘れないようにしました.接続プール関連の構成:

<Context>

    

    

    

    

    

    

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="    " driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/         "/>

Context>

ここでパスワードを設定した場合.Windowsシステムのmysqlに対するデフォルトのユーザー名はrootでパスワードがありません.しかしlinuxシステムにはパスワードがあります.パスワードを変更しないとaccess denied for user 'root'@'localhost'(using password:YES)エラーになることがあります.パスワードが間違っていると思っていましたが、インターネットで調べてみるとrootの権限の問題でした.windwosシステムでデータベースの変更にアクセスするには、管理者の下でパスワードを設定する必要があります.管理者として実行し、net start mysqlでデータベースを起動します.MySQLでrootパスワードを変更する方法を4つ整理しました.


  1SET PASSWORD  

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

  2: mysqladmin

  mysqladmin -u root password "newpass"

    root       ,      

  mysqladmin -u root password oldpass "newpass"

  3:  UPDATE    user 

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

   root     ,    

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;
  

パスワードを変更するとデータベースにリンクできます.