คำนำ
อึดอัด: access denied for user 'root'@'localhost' using password yes
บางครั้งเมื่อเชื่อมต่อข้อมูล MySQL ข้อความแสดงข้อผิดพลาด "access denied for user 'root'@'localhost' using password yes" จะถูกรายงาน อย่าสับสนเมื่อคุณเห็นข้อผิดพลาดนี้ เหตุผลสำหรับข้อผิดพลาดคือชื่อผู้ใช้หรือรหัสผ่านที่เข้าถึงโดยฐานข้อมูลไม่ถูกต้อง ในเวลานี้โดยทั่วไปจะแบ่งออกเป็นสองสถานการณ์ต่อไปนี้และเราจะพูดคุยเกี่ยวกับการแก้ปัญหา
1. Xinan MySQL ไม่ได้ตั้งรหัสผ่าน ในกรณีนี้คุณต้องเพิ่มรหัสผ่าน จะเพิ่มได้อย่างไร?
1. ใช้ผู้ใช้รูทเพื่อเข้าสู่ระบบ MySQL ด้วยรหัสผ่านที่ว่างเปล่า
รูท mysql -u
2. แก้ไขรหัสผ่านของผู้ใช้รูท:
mysql> อัปเดตชื่อฐานข้อมูลชุดรหัสผ่าน = รหัสผ่าน ('รหัสผ่านใหม่') โดยที่ user = 'root'mysql> privileges flush; mysql> เลิก3. รีสตาร์ท MySQL และคุณสามารถเข้าสู่ระบบด้วยรหัสผ่านใหม่ของคุณ
2. ฉันไม่ได้ใช้มันมานานแล้วลืมรหัสผ่านของฉัน
1. เปิด dos และป้อนไดเรกทอรี bin ภายใต้ mysql: i: d: /development/mysql-5.5.29-winx64/bin
2. หยุดบริการ mysql, net stop mysql
3. ป้อนหลังจาก d: /development/mysql-5.5.29-winx64/bin:
MySQLD-defaults-file = "D: /development/mysql-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. แจ้งให้ป้อนรหัสผ่านป้อนรหัสผ่านหลังจาก Enter แล้วป้อน MySQL>
6. ป้อนใต้ mysql>:
mysql> อัปเดตชื่อฐานข้อมูลชุดรหัสผ่าน = รหัสผ่าน ('รหัสผ่านใหม่') โดยที่ user = 'root'mysql> privileges flush; mysql> เลิกหมายเหตุ: หากมีหลายฐานข้อมูลคุณสามารถอัปเดตได้หลายครั้ง
การกำหนดค่า MySQL ผ่านไฟล์คุณสมบัติ
1. วิธีการทั่วไปในการเชื่อมต่อข้อมูล
2. การกำหนดค่าคุณสมบัติและการอ่าน
1. ผู้ใช้ไฟล์กำหนดค่า properties
jdbc.drivers = com.mysql.jdbc.driverjdbc.url = jdbc: mysql: // localhost: 3306/databasenamejdbc.username = rootjdbc.password = uppassword
2. อ่านไฟล์แอตทริบิวต์
(1) สร้างวัตถุคุณสมบัติ
คุณสมบัติคุณสมบัติ = คุณสมบัติใหม่ ();
ขั้นตอนนี้สามารถทำได้: สร้างคลาสที่สืบทอดคุณสมบัติและรับวัตถุในโหมดซิงเกิล
(2) ใช้เมธอด getResourceaseStream () ของวัตถุคลาสเพื่ออ่านไฟล์คุณสมบัติที่ระบุลงในสตรีมอินพุตและใช้วิธีการโหลด () ในคลาสคุณสมบัติเพื่ออ่านรายการคุณสมบัติ (คู่คีย์/ค่า) จากสตรีมอินพุต
Private String Resource = "users.properties"; // หากชื่อไฟล์การกำหนดค่าคือผู้ใช้ ProperTiesInputStream ใน = getClass (). getResourceasstream (ทรัพยากร); properties.load (in);
(3) เมื่อใช้การเชื่อมต่อฐานข้อมูลให้ใช้เมธอด getProperty () ในคลาสคุณสมบัติเพื่อให้ได้ค่าค่าผ่านคีย์ดังนั้นจึงตระหนักถึงการดำเนินการเชื่อมต่อฐานข้อมูล
Drivers String = props.getProperty ("jdbc.drivers"); string url = props.getProperty ("jdbc.url"); string username = props.getProperty ("jdbc.username"); String password = props.getProperty ("jdbc.pass" DriverManager.getConnection (URL, ชื่อผู้ใช้, รหัสผ่าน);พูลเชื่อมต่อ MySQL
1. เหตุใดจึงต้องใช้แหล่งข้อมูลและกลุ่มการเชื่อมต่อ
แอปพลิเคชันจำเป็นต้องเชื่อมต่อกับฐานข้อมูลบ่อยครั้ง หากพวกเขาเชื่อมต่อกับฐานข้อมูลทุกครั้งที่พวกเขาทำงานแล้วปิดมันประสิทธิภาพจะถูก จำกัด อย่างแน่นอน ดังนั้นคุณต้องหาวิธีนำการเชื่อมต่อฐานข้อมูลกลับมาใช้ซ้ำ ใช้พูลการเชื่อมต่อเพื่อให้บรรลุวัตถุประสงค์ของการเชื่อมต่อฐานข้อมูลมัลติเพล็กซ์
2. แนวคิดการเชื่อมต่อพูล
พูลการเชื่อมต่อใช้เพื่อจัดการวัตถุการเชื่อมต่อ พูลการเชื่อมต่อสามารถรับการเชื่อมต่อจากแหล่งข้อมูล อาจมีวัตถุการเชื่อมต่อฐานข้อมูลหลายอย่างในกลุ่มการเชื่อมต่อซึ่งสามารถนำกลับมาใช้ใหม่ได้ เมื่อแอปพลิเคชันต้องการเชื่อมต่อมันจะใช้กับพูลเชื่อมต่อ หากมีการเชื่อมต่อฟรีในกลุ่มการเชื่อมต่อจะถูกกำหนดให้กับแอปพลิเคชัน ถ้าไม่อาจต้องรอคิวรอ
3. การกำหนดค่าพูลการเชื่อมต่อ MySQL
1. คัดลอกแพ็คเกจไดรเวอร์ฐานข้อมูลและแพ็คเกจ JSTL JAR ไปที่ %catalina_home %/lib
2. แก้ไขไฟล์ %catalina_home %/conf/server.xml และเพิ่มภายใต้โหนด <mrost>:
<!-AppName ชื่อโครงการ docbase ต้องถูกต้องและสัญลักษณ์จะต้องถูกแทนที่ด้วย &-!> <context path = "/appname" docBase = "appname/webroot" auth = "container"> <resource name = "jdbc/mysqlds" scope = url = "jdbc: mysql: // localhost: 3306/kqxt? useunicode = true & characterencoding = utf-8" driverclassname = "com.mysql.jdbc.driver" username = "root" password = "root" maxwait = "3000"
3. แก้ไข web.xml และเพิ่มเนื้อหาต่อไปนี้ภายใต้โหนด <beb-app>
<resource-ref> <scription> ตัวอย่างข้อมูล MySQL </คำอธิบาย> <res-ref-name> mySqlds </res-ref-Name> <s res-type> javax.sql.datasource </res-type>
4. รับการเชื่อมต่อฐานข้อมูลในรหัส
// ให้ความสนใจกับชื่อแพ็คเกจนำเข้า java.sql.connection; นำเข้า Javax.naming.context; นำเข้า Javax.naming.initialContext; นำเข้า Javax.sql.datasource; คลาสสาธารณะ dbutil {การเชื่อมต่อแบบคงที่สาธารณะ // รับ Data Source 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