การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน: ใช่) - ไม่มีสิทธิ์?


128

ฉันได้รับข้อผิดพลาดนี้อย่างต่อเนื่อง

ฉันใช้ mySQL Workbench และจากสิ่งที่ฉันพบคือสิทธิ์สคีมาของรูทเป็นโมฆะ ไม่มีสิทธิพิเศษใด ๆ เลย

ฉันมีปัญหาในทุกแพลตฟอร์มที่เซิร์ฟเวอร์ของฉันใช้และนี่เป็นปัญหาที่เกิดขึ้นในทันที

root@127.0.0.1เห็นได้ชัดว่ามีการเข้าถึงจำนวนมาก แต่ฉันลงชื่อเข้าใช้ แต่เพียงแค่กำหนดให้ localhost เท่านั้น - localhost ไม่มีสิทธิ์

ฉันได้ทำบางสิ่งที่เหมือนFLUSH HOSTS, FLUSH PRIVILEGESฯลฯ แต่ได้พบความสำเร็จจากนั้นหรืออินเทอร์เน็ตไม่

ฉันจะรูทการเข้าถึงกลับมาได้อย่างไร ฉันพบว่าสิ่งนี้น่าหงุดหงิดเพราะเมื่อฉันมองไปรอบ ๆ ผู้คนคาดหวังว่าคุณจะ "เข้าถึงได้" แต่ฉันไม่มีสิทธิ์เข้าถึงดังนั้นฉันจึงไม่สามารถเข้าไปในบรรทัดคำสั่งหรืออะไรGRANTก็ได้

เมื่อเรียกใช้SHOW GRANTS FOR rootนี่คือสิ่งที่ฉันได้รับตอบแทน:

รหัสข้อผิดพลาด: 1141 ไม่มีการให้สิทธิ์ดังกล่าวสำหรับผู้ใช้ 'root' บนโฮสต์ '%'


เรียกใช้SHOW GRANTS FOR rootแบบสอบถามโพสต์ผลลัพธ์ในคำถามของคุณ
NobleUplift

คุณกำลังพยายามเข้าถึงฐานข้อมูลจาก localhost หรือจากโฮสต์อื่นโดยใช้ MySQL Workbench?
Andy Jones

รีสตาร์ทเซิร์ฟเวอร์ด้วย --skip-allow-table และเข้าสู่ระบบด้วยผู้ใช้รายใดก็ได้และให้สิทธิ์เต็มรูปแบบในการรูทและรีสตาร์ทเซิร์ฟเวอร์อีกครั้งโดยไม่มีตัวเลือกด้านบน
vidyadhar

@AndyJones ไม่มันอยู่บนเซิร์ฟเวอร์เฉพาะที่ฉันใช้
ไล่ล่า

@vidyadhar ฉันขอโทษฉันไม่แน่ใจว่าฉันจะทำอย่างไร?
ไล่ล่า

คำตอบ:


53

ใช้คำแนะนำในการรีเซ็ตรหัสผ่านรูท - แต่แทนที่จะรีเซ็ตรหัสผ่านรูทเราจะบังคับใส่บันทึกลงในตาราง mysql.user

ในไฟล์ init ให้ใช้สิ่งนี้แทน

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

1
ฉันขอโทษแอนดี้ แต่เมื่อฉันไปถึงขั้นตอนที่ 6 ฉันพบปัญหาอยู่เรื่อย ๆ เนื่องจากฉันใช้วิซาร์ดการติดตั้งฉันจะใช้"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini" --init-file=C:\\mysql-init.txt ทุกอย่างในที่ที่ควรจะเป็นและสิ่งที่คุณมีข้างต้นฉันใส่ในไฟล์ตามนั้น ฉันได้หยุดให้บริการเช่นกัน ฉันเพิ่งได้รับผลลัพธ์นี้: prntscr.com/1ilxau และการปิดระบบ (ปลั๊กอิน) ทุกอย่าง สับสนจริงๆ.
ไล่ล่า

2
คุณเรียกใช้สิ่งนี้ในฐานะผู้ดูแลระบบหรือไม่
Andy Jones

1
ด้วยความประหลาดใจที่โง่เขลาของฉันฉันไม่ได้ หลังจากที่ฉันได้รับprntscr.com/1imcnj - ครั้งแรกที่ฉันทำบนบรรทัดของตัวเอง (จากการวาง) จากนั้นฉันก็วางมันทั้งหมดไว้ในบรรทัดเดียว ฉันขอโทษที่ทำให้ฉันสับสนไม่ใช่ผู้เชี่ยวชาญ sql ต่อ se
ไล่ล่า

17
มันให้: ERROR 1054 (42S22): Unknown column 'Password' in 'field list'ข้อผิดพลาด @AndyJones
alper

1
ฉันได้รับ: คอลัมน์ที่ไม่รู้จัก 'รหัสผ่าน' ใน 'รายการฟิลด์'
sricheta ruj

152

หากคุณมีปัญหาเดียวกันใน MySql 5.7 +:

Access denied for user 'root'@'localhost'

มันเป็นเพราะ MySql 5.7 sudo mysqlโดยค่าเริ่มต้นช่วยให้การเชื่อมต่อกับซ็อกเก็ตซึ่งหมายความว่าคุณเพียงแค่เชื่อมต่อกับ หากคุณเรียกใช้ sql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

แล้วคุณจะเห็นมัน:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

หากต้องการอนุญาตการเชื่อมต่อกับรูทและรหัสผ่านจากนั้นอัปเดตค่าในตารางด้วยคำสั่ง:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

จากนั้นเรียกใช้คำสั่ง select อีกครั้งและคุณจะเห็นว่ามีการเปลี่ยนแปลง:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

และนั่นแหล่ะ คุณสามารถรันกระบวนการนี้ได้หลังจากรันและทำตามsudo mysql_secure_installationคำสั่งเสร็จสิ้น

สำหรับ mariadb ให้ใช้

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

เพื่อตั้งรหัสผ่าน เพิ่มเติมได้ที่https://mariadb.com/kb/en/set-password/


1
ขอบคุณจริงๆในขณะที่การเชื่อมต่อก่อตั้งใน linux mint
Lova Chittumuri

การอัปเดตจากauth_socketเพื่อmysql_native_passwordแก้ไขปัญหาของฉัน ขอบคุณ!
olore

1
นี่เป็นความโกรธอย่างยิ่งในการพยายามคิดออกและเป็นการเสียเวลาอย่างมาก mysql_secure_installationฉันหวังว่าพวกเขาถามในช่วงนี้ ขอบคุณมากสำหรับคำตอบนี้
PatPeter

นอกจากนี้ยังมีประโยชน์stackoverflow.com/questions/2995054/…
Abeer Sul

45

มันไม่ชอบสิทธิ์ผู้ใช้ของฉันดังนั้นฉันจึง SUDO (ใน bash << sudo ตั้งค่าผู้ใช้และรหัสผ่าน) (สิ่งนี้ให้ชื่อผู้ใช้รูทและตั้งรหัสผ่านเป็นอะไรเลย) (บน Mac)

sudo mysql -uroot -p

27

ลองใช้คำสั่งต่อไปนี้

~$ sudo /etc/init.d/mysql stop
~$ sudo mysqld_safe --skip-grant-tables &
~$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

mysql> use mysql;

mysql> update user set password=PASSWORD("root") where User='root';

mysql> flush privileges;

mysql> quit

~$ sudo /etc/init.d/mysql stop

Stopping MySQL database server: mysqld

STOPPING server from pid file /var/run/mysqld/mysqld.pid

mysqld_safe[6186]: ended

[1]+  Done                    mysqld_safe --skip-grant-tables

~$ sudo /etc/init.d/mysql start

~$ mysql -u root -p

* MySQL Community Server 5.6.35 is started
~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

12
ใน MySQL 5.7 ฟิลด์รหัสผ่านในฟิลด์ตาราง mysql.user ถูกลบออกตอนนี้ชื่อฟิลด์คือ 'authentication_string'
Rumid

สำหรับ mysql เวอร์ชันใหม่กว่าพวกเขาเปลี่ยนชื่อคอลัมน์รหัสผ่านเป็น authentication_string
Ramesh Maharjan

sudo mysqld_safeมีฉันนี้/var/run/mysqld for UNIX socket file don't existsแล้วหลังจากmkdir -p /var/run/mysqldและsudo chown -R mysql:mysql /var/run/mysqld/มันทำงานและเริ่มภูต
kenzotenma

1
ข้อผิดพลาด 2002 (HY000): ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ในเครื่องผ่านซ็อกเก็ต '/var/run/mysqld/mysqld.so
Mostafa

22

สำหรับผู้ที่พบข้อผิดพลาดด้านล่างในเวอร์ชัน mysql 5.7+ -

Access denied for user 'root'@'localhost' (using password: YES)
  1. เปิดเทอร์มินัลใหม่

  2. sudo /etc/init.d/mysql stop ... MySQL Community Server 5.7.8-rc หยุดทำงาน

  3. sudo mysqld_safe --skip-grant-tables & สิ่งนี้จะข้ามสิทธิ์ระดับการให้สิทธิ์ทั้งหมดและเริ่ม mysql ในเซฟโหมดบางครั้งกระบวนการติดขัดเพียงเพราะ

grep: write error: Broken ไปป์ 180102 11:32:28 mysqld_safe Logging to '/var/log/mysql/error.log'

เพียงกด Ctrl + Z หรือ Ctrl + C เพื่อขัดจังหวะและออกจากกระบวนการ

  1. mysql -u root

ยินดีต้อนรับสู่จอภาพ MySQL คำสั่งลงท้ายด้วย; หรือ \ g. รหัสการเชื่อมต่อ MySQL ของคุณคือเซิร์ฟเวอร์ 2 เวอร์ชัน: 5.7.8-rc MySQL Community Server (GPL)

ลิขสิทธิ์ (c) 2000, 2015, Oracle และ / หรือ บริษัท ในเครือ สงวนลิขสิทธิ์.

Oracle เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle Corporation และ / หรือ บริษัท ในเครือ ชื่ออื่นอาจเป็นเครื่องหมายการค้าของเจ้าของที่เกี่ยวข้อง

พิมพ์ 'help;' หรือ "\ h" เพื่อขอความช่วยเหลือ พิมพ์ '\ c' เพื่อล้างคำสั่งอินพุตปัจจุบัน

  1. mysql> use mysql;

การอ่านข้อมูลตารางเพื่อให้ชื่อตารางและคอลัมน์สมบูรณ์คุณสามารถปิดคุณสมบัตินี้เพื่อเริ่มต้นใช้งานได้เร็วขึ้นด้วย -A

เปลี่ยนฐานข้อมูลแล้ว

  1. mysql> update user set authentication_string=password('password') where user='root'; Query OK 4 แถวที่ได้รับผลกระทบ 1 คำเตือน (0.03 วินาที) แถวที่ตรงกัน: 4 เปลี่ยน: 4 คำเตือน: 1

  2. mysql> flush privileges; Query OK 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)

  3. mysql> quit ลาก่อน

  4. sudo /etc/init.d/mysql stop

..180102 11:37:12 mysqld_safe mysqld จากไฟล์ pid /var/run/mysqld/mysqld.pid สิ้นสุดแล้ว * MySQL Community Server 5.7.8-rc หยุดทำงาน arif @ ubuntu: ~ $ sudo /etc/init.d/mysql start .. * MySQL Community Server 5.7.8-rc เริ่มทำงาน

  1. mysql -u root -p

    ใส่รหัสผ่าน:

    ยินดีต้อนรับสู่จอภาพ MySQL คำสั่งลงท้ายด้วย; หรือ \ g. รหัสการเชื่อมต่อ MySQL ของคุณคือเซิร์ฟเวอร์ 2 เวอร์ชัน: 5.7.8-rc MySQL Community Server (GPL)

หลังจาก mysql เวอร์ชัน 5.7+ รหัสผ่านของคอลัมน์จะถูกแทนที่ด้วย name authentication_string จากตาราง mysql.user

หวังว่าขั้นตอนเหล่านี้จะช่วยทุกคนได้ขอบคุณ


16

ฉันใช้ ubuntu 18 และเพิ่งติดตั้ง MySQL (รหัสผ่าน: root) ด้วยคำสั่งต่อไปนี้

sudo apt install mysql-server
sudo mysql_secure_installation

เมื่อฉันพยายามเข้าสู่ระบบด้วยผู้ใช้ Ubuntu ปกติมันทำให้ฉันมีปัญหานี้

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

แต่ฉันสามารถเข้าสู่ระบบ MySQL ผ่านทางผู้ใช้ขั้นสูง การใช้คำสั่งต่อไปนี้ฉันสามารถเข้าสู่ระบบผ่านผู้ใช้ปกติได้

sudo mysql    
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
exit;

จากนั้นคุณจะสามารถเข้าสู่ระบบ Mysql ด้วยบัญชีปกติได้

ป้อนคำอธิบายภาพที่นี่


8

วิธีง่ายๆในการรีเซ็ตรหัสผ่านรูทบนระบบ Linux:

sudo dpkg-reconfigure mysql-server-5.5

ชำระเงินด้วยเหตุผลอื่น ๆ ที่ทำให้การเข้าถึงถูกปฏิเสธ:

https://dev.mysql.com/doc/refman/5.7/en/pro issues-connecting.html


1
ค้นหาเวอร์ชันของคุณด้วย "locate mysql-server" และเรียกใช้คำสั่งตามนั้น
Punnerud

5

หากคุณได้รับข้อผิดพลาดนี้ใน Workbench แต่คุณสามารถเข้าสู่ระบบจากเทอร์มินัลได้ให้ทำตามขั้นตอนนี้

ขั้นแรกให้เข้าสู่ระบบด้วยรหัสผ่านปัจจุบันของคุณ:

sudo mysql -u root -p

จากนั้นเปลี่ยนรหัสผ่านของคุณเนื่องจากการมีรหัสผ่านที่มีความแข็งแรงต่ำทำให้เกิดข้อผิดพลาด

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-strong-password';

FLUSH PRIVILEGES;

จากนั้นเพียงแค่ออกและเข้าสู่ระบบอีกครั้งด้วยรหัสผ่านใหม่ของคุณ:

quit

sudo mysql -u root -p

เมื่อคุณเข้าสู่ระบบเรียบร้อยแล้วให้พิมพ์คำสั่ง:

use mysql;

ควรแสดงข้อความเช่น 'Database changes' จากนั้นพิมพ์:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

หลังจากประเภทนั้น:

UPDATE mysql.user set authentication_string=PASSWORD('new-strong-password') where user='root';

จากนั้นพิมพ์:

FLUSH PRIVILEGES;

จากนั้นเพียงแค่ออก:

quit

ตอนนี้ลองเข้าสู่ระบบด้วยรหัสผ่านใหม่ของคุณใน WORKBENCH ของคุณ หวังว่ามันจะได้ผล ขอบคุณ.


4

ฉันประสบปัญหานี้ขณะติดตั้ง Testlink บนเซิร์ฟเวอร์ Ubuntu ฉันทำตามขั้นตอนเหล่านี้

mysql -u root
use mysql;
update user set password=PASSWORD("root") where User='root';
flush privileges;
quit

ตอนนี้หยุดอินสแตนซ์และเริ่มอีกครั้งเช่น

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

2

วิธีที่ง่ายที่สุดในการรีเซ็ตรหัสผ่านรูทคือ:

  • ตัวเลือกการรีสตาร์ท mysqld --skip ทุนตาราง- สิ่งนี้ทำให้ทุกคนสามารถเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่านและมีสิทธิพิเศษทั้งหมด เนื่องจากไม่ปลอดภัยคุณอาจต้องใช้ --skip-grant-tables ร่วมกับ --skip-networks เพื่อป้องกันไม่ให้ไคลเอ็นต์ระยะไกลเชื่อมต่อ

  • เชื่อมต่อกับเซิร์ฟเวอร์ mysqld ด้วยคำสั่งนี้:

  • shell> mysql ออกคำสั่งต่อไปนี้ในไคลเอนต์ mysql แทนที่รหัสผ่านด้วยรหัสผ่านที่คุณต้องการใช้

  • mysql> อัปเดต mysql.user SET Password = PASSWORD ('MyNewPass') -> WHERE User = 'root'; mysql> สิทธิ์ในการล้าง;

  • หยุดการทำงานของเซิร์ฟเวอร์จากนั้นรีสตาร์ทตามปกติ (โดยไม่มีตัวเลือก --skip-grant-tables และ --skip-networks)

เอกสารที่มา Mysql และประสบการณ์ส่วนตัว:

http://dev.mysql.com/doc/refman/5.6/en/resetting-permissions.html


2

ใน mysql 5.7 ฟิลด์รหัสผ่านถูกแทนที่ด้วย authentication_string ดังนั้นคุณจะทำสิ่งนี้แทน

update user set authentication_string=PASSWORD("root") where User='root';

ดูลิงค์นี้ฐานข้อมูลผู้ใช้ MySQL ไม่มีคอลัมน์รหัสผ่าน - การติดตั้ง MySQL บน OSX


1

ฉันแก้ไขปัญหาเดียวกันโดยเรียกใช้ Workbench ในฐานะผู้ดูแลระบบ

... ฉันเดาว่าเป็นเพราะข้อ จำกัด ของคอมพิวเตอร์ของ บริษัท ในกรณีของฉัน ...


0

ลองทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหานี้:

  1. เปิด Terminal / command prompt และไปที่โฟลเดอร์ bin ของโฟลเดอร์การติดตั้ง MySQL mysqld --consoleจากนั้นเรียกใช้คำสั่ง
  2. หากคุณเห็นว่าบรรทัด171010 14:58:22 [Note] --secure-file-privนั้นถูกตั้งค่าเป็น NULL การดำเนินการที่เกี่ยวข้องกับการนำเข้าและส่งออกข้อมูลถูกปิดใช้งานหลังจากดำเนินการคำสั่งข้างต้นจากพรอมต์คำสั่ง
  3. จากนั้นคุณต้องตรวจสอบว่าmysqldWindows Firewall หรือโปรแกรมอื่นถูกบล็อกหรือไม่
  4. หาก Windows Firewall ถูกบล็อกคุณจะต้องปลดบล็อกและบันทึกการตั้งค่า
  5. ในการปลดบล็อกmysqldหรือmysqlแอปพลิเคชันให้ทำตามขั้นตอนด้านล่าง:
    1. ไปที่พรอมต์คำสั่งและพิมพ์wf.mscเพื่อเปิดการตั้งค่าไฟร์วอลล์
    2. คลิกที่อนุญาตแอพหรือคุณสมบัติผ่าน Windows Firewall
    3. เลือกmysqldหรือmysqldอินสแตนซ์ที่มีอยู่ในรายการและทำเครื่องหมายในช่องสำหรับโดเมนสาธารณะและส่วนตัวและบันทึกการตั้งค่า
  6. กลับไปที่โฟลเดอร์ bin แล้วลองใช้คำสั่งจากขั้นตอนที่ 1 อีกครั้ง
  7. ควรทำงานได้ดีและไม่แสดงข้อผิดพลาดใด ๆ

มันควรจะเป็นไปได้ที่จะรันคอนโซล MySQL โดยไม่มีปัญหาใด ๆ ในตอนนี้!


0

ฉันแก้ไขปัญหาเดียวกันโดยใช้ sql ถัดไปและรีสตาร์ทเซิร์ฟเวอร์ MySQL:

update mysql.user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y'
where user='root';

0

ฉันทำงานกับ Access Denied สำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน: ใช่) เป็นเวลาหลายชั่วโมงฉันพบวิธีแก้ปัญหาต่อไปนี้

The answer to this problem was that in the my.cnf located within
/etc/mysql/my.cnf

the line was either 
bind-address = 127.0.0.1 
            (or)
bind-address = localhost
            (or)
bind-address = 0.0.0.0

I should prefer that 127.0.0.1

I should also prefer 0.0.0.0, it is more flexible 
because which will allow all connections

0

ฉันไม่คิดว่าคุณต้องหนี--init-fileพารามิเตอร์:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini" --init-file=C:\\mysql-init.txt

ควรจะเป็น:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini" --init-file=C:\mysql-init.txt


0

สำหรับปัญหาข้างต้นรหัสผ่าน ur ในระบบควรตรงกับรหัสผ่านที่คุณผ่านในโปรแกรมเพราะเมื่อคุณเรียกใช้โปรแกรมจะตรวจสอบรหัสผ่านของระบบเนื่องจากคุณได้กำหนดรูทเป็นผู้ใช้ดังนั้นจึงทำให้คุณมีข้อผิดพลาดและในเวลาเดียวกันบันทึก ไม่ถูกลบออกจากฐานข้อมูล

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
class Delete
{
    public static void main(String []k)
    {
        String url="jdbc:mysql://localhost:3306/student";

        String user="root";
        String pass="jacob234";
        try
        {
            Connection myConnection=DriverManager.getConnection(url,user,pass);
            Statement myStatement=myConnection.createStatement();
            String deleteQuery="delete from students where id=2";
            myStatement.executeUpdate(deleteQuery);
            System.out.println("delete completed");
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}

เก็บรหัสผ่านระบบของคุณเป็น jacob234 จากนั้นเรียกใช้รหัส


0

กับฉันเป็นปัญหาเดียวกัน แต่มันเกิดเพราะฉันใช้เซิร์ฟเวอร์ mysql บน 32 (บิต) และโต๊ะทำงานกำลังทำงานบนเวอร์ชัน 64 (บิต) เซิร์ฟเวอร์และโต๊ะทำงานต้องมีเวอร์ชันเดียวกัน

xpress



0

ฉันประสบปัญหาเดียวกันเมื่อพยายามเชื่อมต่อฐานข้อมูล Mysql โดยใช้แอปพลิเคชัน Laravel ฉันอยากจะแนะนำโปรดตรวจสอบรหัสผ่านสำหรับผู้ใช้ รหัสผ่าน MySQL ไม่ควรมีอักขระพิเศษเช่น# , &ฯลฯ ...


บน bluehost การลบอักขระพิเศษออกจากรหัสผ่านช่วยแก้ปัญหาได้จริง
Mena
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.