Thaiadmin

ตั้ง password ให้ root ใน mysql

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ sengausa

  • *****
  • 537
  • 0
ตั้ง password ให้ root ใน mysql
« เมื่อ: 6 พฤศจิกายน 2012, 22:44:16 »
ปัญหาคือ ไม่สามารถเข้า database ได้ เกิด error ดังนี้
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

ผมเลยค้นหาจากเน็ต  ได้วิธีดังต่อไปนี้

1.restart MySQL
2.ไปที่ Path ที่ลง MySQL ไว้หาไฟล์ชื่อ  my.ini  เปิดไฟลล์ด้วย notepad++   หาคำว่า [mysqld]
แล้วทำการ enter พิมพ์คำว่า skip-grant-tables ลงไป
3.run MySQL อีกครั้ง
4.เปิด Navicat เลือก database ชื่อ mysql  ตาราง user  ให้ลบ password ของ user   root ออกไปให้เป็นค่าว่าง
5.stop MySQL ไปที่ Path ที่ลง MySQL ไว้หาไฟล์ชื่อ  my.ini แล้วลบคำว่า skip-grant-tables ที่เราเพิ่มออกไป
6.run MySQL อีกครั้ง เสร็จเรียบร้อยครับ

ตอนนี้สามารถเข้า mysql ได้แล้ว  แต่อยากตั้ง  password ให้ root
1. mysql -u root -p  ( มันจะเข้าเลยเพราะ password ไม่ได้ตั้งไว้จากข้างบน )
2. use mysql;
3. UPDATE user SET Password=PASSWORD(‘1234’) WHERE
    User=’root’;
4. FLUSH PRIVILEGES;
5. \q
6. service mysql restart

ผลที่ได้กลับเป็นเหมือนเดิม
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

ช่วยชี้แนะด้วยครับ

ออฟไลน์ d-friends

  • ****
  • 980
  • 11
  • เพศ: ชาย
Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #1 เมื่อ: 6 พฤศจิกายน 2012, 23:32:49 »


วิธีแก้ ลบ root ให้เหลือ แถว Localhost ก็ได้
DELETE FROM mysql.user WHERE Host='localhost' AND User='';

ปล.เอามาจากนี้
http://www.tikalk.com/alm/blog/solution-mysql-error-1045-access-denied-userlocalhost-breaks-openstack
« แก้ไขครั้งสุดท้าย: 6 พฤศจิกายน 2012, 23:42:55 โดย d-friends »
พวกเราแก๊ง Rocket แห่งจักรวาล. While Hole พรุ่งนี้ที่สดใสรอเราอยู่

ออฟไลน์ apisak

  • ***
  • 164
  • 0
Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #2 เมื่อ: 7 พฤศจิกายน 2012, 08:35:48 »
ปัญหาคือ ไม่สามารถเข้า database ได้ เกิด error ดังนี้
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

ผมเลยค้นหาจากเน็ต  ได้วิธีดังต่อไปนี้

1.restart MySQL
2.ไปที่ Path ที่ลง MySQL ไว้หาไฟล์ชื่อ  my.ini  เปิดไฟลล์ด้วย notepad++   หาคำว่า [mysqld]
แล้วทำการ enter พิมพ์คำว่า skip-grant-tables ลงไป
3.run MySQL อีกครั้ง
4.เปิด Navicat เลือก database ชื่อ mysql  ตาราง user  ให้ลบ password ของ user   root ออกไปให้เป็นค่าว่าง
5.stop MySQL ไปที่ Path ที่ลง MySQL ไว้หาไฟล์ชื่อ  my.ini แล้วลบคำว่า skip-grant-tables ที่เราเพิ่มออกไป
6.run MySQL อีกครั้ง เสร็จเรียบร้อยครับ

ตอนนี้สามารถเข้า mysql ได้แล้ว  แต่อยากตั้ง  password ให้ root
1. mysql -u root -p  ( มันจะเข้าเลยเพราะ password ไม่ได้ตั้งไว้จากข้างบน )
2. use mysql;
3. UPDATE user SET Password=PASSWORD(‘1234’) WHERE
    User=’root’;
4. FLUSH PRIVILEGES;
5. \q
6. service mysql restart

ผลที่ได้กลับเป็นเหมือนเดิม
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

ช่วยชี้แนะด้วยครับ

ลองเข้าที่ console ดูครับ แล้ว 
mysql -u root -p

> ถาม password ให้ enter ผ่านไป

ออฟไลน์ sengausa

  • *****
  • 537
  • 0
Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #3 เมื่อ: 7 พฤศจิกายน 2012, 08:42:49 »

วิธีแก้ ลบ root ให้เหลือ แถว Localhost ก็ได้
DELETE FROM mysql.user WHERE Host='localhost' AND User='';

ปล.เอามาจากนี้
http://www.tikalk.com/alm/blog/solution-mysql-error-1045-access-denied-userlocalhost-breaks-openstack


ขอบคุณครับ  แต่มันไม่ถาม password เหมือนเดิมครับ เข้า mysql ได้เลย

ออฟไลน์ d-friends

  • ****
  • 980
  • 11
  • เพศ: ชาย
Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #4 เมื่อ: 7 พฤศจิกายน 2012, 09:07:35 »
ก็อัพเดท password root เข้าไปใหม่ ก็น่าจะได้แล้วมั้งครับ

ลองเรียก ตาราง user ดู สังเกตุว่ามันยังมีว่างๆ อยู่หรือเปล่า (ตอนแรกที่มันไม่ได้ผมว่าอาจเป็นเพราะมันมีuser password ว่าง)

mysql> SELECT user,host,password FROM mysql.user;
+------------------+------------+-------------------------+
| user             | host       | password                |
+------------------+------------+-------------------------+
| root             | localhost  | *77B48D6366D102139D3719 |
| root             | mysqltests | *77B48D6366D102139D3719 |
| root             | 127.0.0.1  | *77B48D6366D102139D3719 |
| root             | ::1        | *77B48D6366D102139D3719 |
|                  | localhost  |                         |
|                  | mysqltests |                         |

| debian-sys-maint | localhost  | *04D30B480932109EFD77E1 |
+------------------+------------+-------------------------+
พวกเราแก๊ง Rocket แห่งจักรวาล. While Hole พรุ่งนี้ที่สดใสรอเราอยู่

ออฟไลน์ sengausa

  • *****
  • 537
  • 0
Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #5 เมื่อ: 7 พฤศจิกายน 2012, 18:32:17 »
ได้แล้วครับ  ใช้  mysql -u root -p mysql
แล้วค่อย Update  password เข้าไปครับ ขอบคุณทุกท่านมากครับ
ขอบคุณทุกท่านมากครับ

blackbuff

Re: ตั้ง password ให้ root ใน mysql
« ตอบกลับ #6 เมื่อ: 5 ธันวาคม 2018, 00:53:37 »


sudo mysql --user=root


DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'