序文
扱いにくい: access denied for user 'root'@'localhost' using password yes
MySQLデータを接続すると、 "access denied for user 'root'@'localhost' using password yes"エラーメッセージが報告される場合があります。このエラーが表示されているときは混乱しないでください。エラーの理由は、データベースからアクセスされるユーザー名またはパスワードが正しくないためです。この時点で、それは一般的に次の2つの状況に分かれており、解決策について説明します。
1. Xinan MySQLはパスワードを設定していません。この場合、パスワードを追加する必要があります。追加する方法は?
1.ルートユーザーを使用して、空のパスワードでmysqlにログインします
mysql -uルート
2。ルートユーザーのパスワードを変更します。
mysql>データベース名の更新パスワード=パスワードを設定します( 'new Password')user = 'root'mysql> flush privileges; mysql> quit
3. MySQLを再起動すると、新しいパスワードでログインできます。
2。私はそれを長い間使用していません、私のパスワードを忘れて
1. DOSを開いて、mysql:i:d:/development/mysql-5.29-winx64/binの下にBinディレクトリを入力します
2。MySQLサービスを停止し、Net Stop MySQL
3. d:/development/mysql-5.5.29-winx64/binの後に入力:
mysqld - defaults-file = "d:/development/mysql-5.5.5.29-winx64/bin/my.ini" --- console - skip-grant-tables
4. DOSウィンドウを再開して、d:/development/mysql-5.5.29-winx64/bin:mysql -root -pの後に入力します
5。パスワードを入力するようにプロンプトし、入力後にパスワードを入力し、mysql>を入力します>
6。mysqlの下に入力>::
mysql>データベース名の更新パスワード=パスワードを設定します( 'new Password')user = 'root'mysql> flush privileges; mysql> quit
注:複数のデータベースがある場合は、複数回更新できます。
プロパティファイルを介してMySQLを構成します
1.データを接続する一般的な方法
2。プロパティの構成と読み取り
1。構成ファイルusers.properties
jdbc.drivers = com.mysql.jdbc.driverjdbc.url = jdbc:mysql:// localhost:3306/databasenamejdbc.username = rootjdbc.password = uppassword
2。属性ファイルを読み取ります
(1)プロパティオブジェクトを作成します。
プロパティプロパティ= new Properties();
この手順は、プロパティを継承するクラスを作成し、Singletonモードでオブジェクトを取得するクラスを作成することもできます。
(2)クラスオブジェクトのgetResourCeasStream()メソッドを使用して、指定されたプロパティファイルを入力ストリームに読み取り、プロパティクラスのload()メソッドを使用して、入力ストリームからプロパティリスト(キー/値ペア)を読み取ります。
private string resource = "users.properties"; //構成ファイル名がusers.propertiesinputStream in = getClass()。getResourceasStream(resource); properties.load(in);
(3)データベース接続を使用する場合、プロパティクラスのgetProperty()メソッドを使用して、キーを介して値値を取得し、それによりデータベース接続操作を実現します。
string drivers = props.getProperty( "jdbc.drivers"); string url = props.getproperty( "jdbc.url"); string username = props.getProperty( "jdbc.username"); string password = props.getproperty( "jdbc.password"); drivermanager.getConnection(url、username、password);
MySQL接続プール
1.データソースと接続プールを使用する理由
アプリケーションは頻繁にデータベースに接続する必要があります。操作するたびにデータベースに接続してから閉じると、パフォーマンスは間違いなく制限されます。したがって、データベース接続を再利用する方法を見つける必要があります。接続プールを使用して、データベース接続をマルチプレックスする目的を実現します。
2。接続プールの概念
接続プールは、接続オブジェクトを管理するために使用されます。接続プールは、データソースから接続を取得できます。接続プールには、再利用できるデータベース接続オブジェクトがいくつかあります。アプリケーションを接続する必要がある場合、接続プールに適用されます。接続プールに無料の接続がある場合、アプリケーションに割り当てられます。そうでない場合は、待機中のキューで待つ必要があるかもしれません。
3。MySQL接続プール構成
1.データベースドライバーパッケージとJSTL JARパッケージを%Catalina_home%/libにコピーします。
2.%catalina_home%/conf/server.xmlファイルを変更し、<host>ノードの下に追加します。
<! - AppNameプロジェクト名Docbaseは正確でなければならず、シンボルは& - !> <コンテキストパス= "/appname" docbase = "appname/webroot" auth = "container"> <resource name = "jdbc/mysqlds" scope = "shareable" type = "javax.sql.datasource" url = "jdbc:mysql:// localhost:3306/kqxt?useunicode = true&charaterencoding = utf-8" driverclassName = "com.mysql.jdbc.driver" username = "root" password = "root" maxwait = "3000
3. web.xmlを変更し、<web-app>ノードの下に次のコンテンツを追加します
<Resource-Ref> <説明> mysql DataSourceの例
4.コードでデータベース接続を取得します
//インポートされたパッケージ名に注意してくださいjava.sql.connection;インポートjavax.naming.context; import javax.naming.initialContext; Import javax.sql.datasource; public connection getConnection()Throws Excention {Context = new initialConnectext = new InitialConnection GetConnection()Throws Excement()Throws Excention //データソースDataSource ds =(dataSource)context.lookup( "java:comp/env/jdbc/mysqlds"); //データベース接続を取得しますconn = ds.getConnection(); if(conn!= null &&!conn.isclosed()){return conn; } else {return null; }}}要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。