ข้อผิดพลาด 1396 (HY000): การดำเนินการ CREAT USER ล้มเหลวสำหรับ 'jack' @ 'localhost'


311

ฉันดูเหมือนจะไม่สามารถสร้างผู้ใช้แบบง่าย ๆ ที่ฉันได้ลบไปแม้ในขณะที่รูทใน MySQL

กรณีของฉัน: มีผู้ใช้ 'แจ็ค' อยู่ก่อนหน้านี้ แต่ฉันลบมันออกจาก mysql.user เพื่อสร้างใหม่ ฉันไม่เห็นร่องรอยของสิ่งนี้ในตารางนั้น ถ้าฉันใช้คำสั่งนี้กับชื่อผู้ใช้สุ่ม ๆ พูดว่า 'jimmy' มันใช้งานได้ดี (เหมือนเดิมที่ใช้กับ 'jack')

ฉันได้ทำอะไรกับ 'แจ็ค' ของผู้ใช้ที่เสียหายและฉันจะยกเลิกการคอร์รัปชั่นนั้นได้อย่างไรเพื่อสร้าง 'แจ็ค' ใหม่ในฐานะผู้ใช้ที่ถูกต้องสำหรับการติดตั้ง MySQL นี้

ดูตัวอย่างด้านล่าง (แน่นอนว่าเดิมมีเวลามากระหว่างการสร้าง 'แจ็ค' และการถอดเขา)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jack             | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
4 rows in set (0.00 sec)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost'
mysql> CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jimmy            | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

คำตอบ:


233

FLUSH PRIVILEGES;ลองทำ ข้อผิดพลาด MySQL นี้โพสต์ในรหัสข้อผิดพลาดที่ปรากฏขึ้นเพื่อรายงานความสำเร็จในกรณีที่คล้ายกับของคุณหลังจากล้างข้อมูลส่วนตัว 


13
ฉันได้พบข้อเสนอแนะนี้และทดลองใช้ก่อนหน้านี้โดยไม่ประสบความสำเร็จ แต่อาจมีบางอย่างผิดปกติ ลองใช้อีกครั้งจากนั้นสร้างสถานการณ์ขึ้นอีกครั้งกับผู้ใช้รายอื่นฉันพบว่านี่เป็นการหลอกลวง แน่นอนคำตอบอย่างเป็นทางการในวันนี้คือ "ไม่ควรโง่" และใช้ REVOKE และ DROP USER เพื่อทำให้ถูกต้อง ฉันเป็นหนี้กับคำตอบทั้งสาม (อันนี้เพิ่งเกิดขึ้นเป็นคนที่ประกันตัวฉันออกจากสถานการณ์ปัจจุบันของฉัน)
Russ Bateman

13
ปี 2559 mysql อยู่ที่ v14.14 และมันก็ยังพัง
ivo Welch

4
ฉันต้องลดผู้ใช้ก่อนตาม @ tver3305 คำตอบ
Shautieh

9
ฉันเห็นปัญหาเดียวกันกับ 10.1.21 แต่ "สิทธิ์ล้าง" ไม่ได้สร้างความแตกต่าง ฉันปล่อยผู้ใช้ให้ลบออกแล้วสร้างซึ่งล้มเหลวด้วย "ข้อผิดพลาด 1396 (HY000) ที่บรรทัด 7: การดำเนินการ CREATE USER ล้มเหลวสำหรับ ... " ฉันหวังว่าฉันจะได้รับ mysql / mariadb เพื่ออธิบายรายละเอียดข้อผิดพลาดเล็กน้อยเช่นทำไมมันล้มเหลว
David M. Karr

3
ฉันได้รับข้อผิดพลาดแม้ว่าฉันจะพยายามทิ้งผู้ใช้เช่นกัน 'สิทธิ์ล้าง' ไม่ทำงานสำหรับฉันหลังจากทำวิจัยเล็กน้อยฉันพบวิธีแก้ปัญหาด้วยการเพิกถอนการเข้าถึงทั้งหมดและทิ้งผู้ใช้ฉันไม่คิดอย่างนั้น การดำเนินการฟลัชจะช่วยในกรณีที่คล้ายกันฉันได้แบ่งปันคำอธิบายโดยละเอียดของฉันในหน้านี้rathishkumar.in/2018/10/ …
Rathish

545

ใช่ข้อผิดพลาดนี้มี อย่างไรก็ตามฉันพบวิธีแก้ไขเล็กน้อย

  • สมมติว่าผู้ใช้อยู่ที่นั่นแล้วปล่อยผู้ใช้
  • หลังจากลบผู้ใช้ไม่จำเป็นต้องล้างสิทธิ์ mysql
  • ตอนนี้สร้างผู้ใช้

ที่ควรแก้มัน สมมติว่าเราต้องการสร้างผู้ใช้ admin @ localhost สิ่งเหล่านี้จะเป็นคำสั่ง:

ดร็อปผู้ใช้ admin @ localhost;
สิทธิ์ล้าง;
สร้างผู้ใช้ admin @ localhost ที่ระบุโดย ' admins_password '

ไชโย


58
สิทธิ์ล้างอย่างเดียวไม่ทำงานสำหรับฉัน วางผู้ใช้แก้ไขทุกอย่าง ขอบคุณ
เจค

3
เหมือนกับฉัน. ฉันต้องทิ้งผู้ใช้ก่อน
kgiannakakis

3
@ QuantumMechanic โซลูชันไม่ทำงานสำหรับฉัน แต่ลดลงแล้วล้างได้
เตาแก๊ส

ในกรณีของฉันผู้ใช้ที่ทิ้งคือ enogh โดยไม่ต้องล้างสิทธิ์
Scadge

นี่เป็นตัวช่วยชีวิตที่ยิ่งใหญ่ - เช่นเดียวกับ @Jake เหนือส่วนสำคัญคือผู้ใช้ดรอปที่มีส่วน localhost
kellyfj

46

ข้อผิดพลาดนี้ได้รับการนั่งอยู่บน bugs.mysql.com ตั้งแต่ปี 2007 และหัวข้อนี้ส่วนใหญ่เป็นเพียงเรื่องน่ารำคาญของคำตอบที่ผิดเหล่านั้นแม้กระทั่งปีที่แล้ว

ตามเอกสาร MySQL คำสั่งชอบCREATE USER, GRANT, REVOKEและDROP USERไม่จำเป็นต้องมีตามมาFLUSH PRIVILEGESคำสั่ง มันค่อนข้างชัดเจนว่าทำไมถ้ามีคนอ่านเอกสาร เป็นเพราะการเปลี่ยนแปลงตาราง MySQL โดยตรงไม่ได้โหลดข้อมูลลงในหน่วยความจำ แต่คำตอบมากมายสำหรับข้อผิดพลาดนี้FLUSH PRIVILEGESคือคำตอบ

สิ่งนี้อาจไม่ได้เป็นข้อผิดพลาดด้วยซ้ำ มันเป็นสมรู้ร่วมคิดเอกสาร - เอกสารแตกต่างกันไปในสถานที่สำคัญจากรุ่นสู่รุ่น

13.7.1.2 DROP USER ไวยากรณ์

...

ผู้ใช้ DROP USER [ผู้ใช้] ...

...

DROP USER 'jeffrey' @ 'localhost';

หากคุณระบุเฉพาะส่วนชื่อผู้ใช้ของชื่อบัญชีระบบจะใช้ส่วนชื่อโฮสต์ของ '%'

DROP USERตามที่ปรากฏใน MySQL 5.0.0 จะลบเฉพาะบัญชีที่ไม่มีสิทธิ์ ใน MySQL 5.0.2 นั้นมีการแก้ไขเพื่อลบสิทธิ์บัญชีเช่นกัน ซึ่งหมายความว่าขั้นตอนการลบบัญชีขึ้นอยู่กับรุ่นของ MySQL

ในฐานะของ MySQL 5.0.2 คุณสามารถลบบัญชีและสิทธิ์ได้ดังนี้:

ผู้ใช้ DROP USER;

คำสั่งจะลบแถวสิทธิ์สำหรับบัญชีออกจากตารางการให้สิทธิ์ทั้งหมด

ครั้งเดียวที่ฉันได้รับข้อผิดพลาดนี้คือเมื่อฉันทำDROP USER user; เช่นเดียวกับที่ doc แนะนำ แต่ MySQL ไม่ถือว่า '%' เป็นไวด์การ์ดในแบบที่จะทำให้ผู้ใช้ทั้งหมดที่โฮสต์ทั้งหมด มันไม่ได้บ้าคลั่งเลย หรืออาจเป็นไปได้ว่าบางครั้งมันจะทำงานเมื่อลบผู้ใช้ localhost แล้วพยายามลบหนึ่งที่%

เป็นที่ชัดเจนสำหรับฉันว่าเมื่อพยายามลบผู้ใช้ที่% จะมีข้อความแสดงข้อผิดพลาดและออก ลำดับต่อมาCREATE USERที่ localhost จะล้มเหลวเนื่องจากผู้ใช้ localhost ไม่เคยถูกลบ ดูเหมือนว่าไม่จำเป็นต้องเสียเวลาขุดในตารางสิทธิ์มองหาผีตามที่มีโปสเตอร์แนะนำ

ฉันเห็น 7 คะแนนสำหรับ:

DROP USER 'jack @ localhost'; // ลบบัญชีอย่างสมบูรณ์

ซึ่งตีความว่าDROP USER 'jack@localhost'@'%';ผิด #

ดูเหมือนจะมีข้อผิดพลาดจริงที่สร้างข้อความแสดงข้อผิดพลาดเหมือนกัน แต่ต้องทำกับผู้ใช้ที่สร้างขึ้นครั้งแรก (หลังจากติดตั้งเซิร์ฟเวอร์ mysql ใหม่) ที่ถูกทิ้ง ไม่ว่าข้อผิดพลาดนั้นจะได้รับการแก้ไขหรือไม่ฉันไม่รู้ แต่ฉันจำไม่ได้ว่าเกิดขึ้นเมื่อเร็ว ๆ นี้และตอนนี้ฉันก็เป็นเวอร์ชั่น 5.5.27 แล้ว


8
คุณเป็นนักเขียนเอกสาร MySQL หรือไม่
Pacerier

นี่คือคำตอบสำหรับฉัน Mariadb ได้สืบทอดข้อผิดพลาดนี้แล้ว
zerpsed

ทำไมนี่ไม่ใช่คำตอบที่ยอมรับ: / อย่างไรก็ตามขอขอบคุณ @ user1969061 นี้อย่างแน่นอนทำงานสำหรับฉันในmariadb-server-5.5.60-1.el7_5.x86_64
ฮันโซโล

36

หากคุณใช้DELETEคำสั่งบนmysql.userตารางในความพยายามที่จะลบผู้ใช้จากนั้นพยายามที่จะสร้างผู้ใช้อีกครั้งด้วยCREATE USERคุณจะได้รับ1396ข้อผิดพลาด กำจัดข้อผิดพลาดนี้โดยการเรียกใช้DROP USER 'username'@'host';

DELETE 
  FROM mysql.user 
 WHERE user = 'jack';

(คุณจะได้รับข้อผิดพลาด 1396 หากคุณพยายามสร้างแจ็คขึ้นมาใหม่)

CREATE USER 'jack'@'localhost' IDENTIFIED BY PASSWORD '*Fi47ytFF3CD5B14E7EjkjkkC1D3F8086A5C0-krn';

(ออกจากสถานการณ์นี้ด้วยการเรียกใช้DROP USER)

DROP USER 'jack'@'localhost';

(ฉันคิดว่าFLUSH PRIVILEGESไม่สามารถทำร้ายได้ แต่ให้ลบผู้ใช้ก่อน)


24

คุณไม่ควรลบผู้ใช้ด้วยตนเอง MySQL มีREVOKEไวยากรณ์สำหรับการลบสิทธิ์และDROP USERสำหรับการลบ:

REVOKE priv1,priv2,priv3,etc... FROM 'jack@localhost'; // remove certain privileges
DROP USER 'jack@localhost'; // completely delete the account

ดีที่สุดที่จะใช้เครื่องมือที่มีให้แทนที่จะล้อเล่นในพื้นหลัง


2
นี่คือคำตอบที่แท้จริง แต่ไม่ใช่ปัญหาที่ฉันมี (ซึ่งถูกสร้างขึ้นโดยความโง่เขลาของฉัน) ขอบคุณมากสำหรับการตั้งค่าฉันตรง!
Russ Bateman

@Marc แล้วทำไมพวกเขาถึงคิดประดิษฐ์flush privilegesตั้งแต่แรก? เอกสาร MySQL อย่างเป็นทางการจะพูดคุยเกี่ยวกับสิ่งที่ชอบและdelete from user where user = 'jack'; flush privilegesทำไมคุณถึงบอกว่าพวกเขาไม่ได้เป็นส่วนหนึ่งของเครื่องมือที่มีให้?
Pacerier

1
ในฐานะที่เป็น @ user1969061 ชี้ให้เห็นว่า'jack@localhost'น่าจะอยู่'jack'@'localhost'ที่นี่
jochen

11

วางผู้ใช้ล้างสิทธิ์; จากนั้นสร้างผู้ใช้ มันใช้งานได้!


1
การล้างสิทธิ์อย่างเดียวไม่ทำงานจนกว่าฉันจะทิ้งผู้ใช้ ขอบคุณ
Brandon Fitzpatrick

10

ลองdelete from mysql.db where user = 'jack'แล้วสร้างผู้ใช้


1
สิ่งนี้มีประโยชน์ในการช่วยให้ฉันเข้าใจว่าฉันได้รับความเสียหายจากการติดตั้งอย่างไร ขอบคุณมาก.
Russ Bateman

อ่านเพิ่มเติมเพื่อแสดงความคิดเห็นของ Fely มีตารางเพิ่มเติมที่เกี่ยวข้อง
นักโทษ 13

6

ใน MySQL 5.6 การใช้Drop user userid;ไม่ได้ผล วิธีใช้: ใช้และDrop user 'userid'@'localhost'; / หรือ Drop user 'userid'@'%';ด้วยวิธีนี้ฉันสามารถวางผู้ใช้และสร้างใหม่


5
two method 
one :
setp 1: drop user 'jack'@'localhost';
setp 2: create user 'jack'@localhost identified by 'ddd';

two:
setp 1: delete from user where user='jack'and host='localhost';
setp 2: flush privileges;
setp 3: create user 'jack'@'localhost' identified by 'ddd';


4

หากคุณต้องการลบผู้ใช้กับ SQL columns_privคุณต้องลบข้อมูลที่เกี่ยวข้องที่อยู่ในตารางต่อไปนี้: db, procs_priv, tables_priv, จากนั้นดำเนินการflush privileges;


คำตอบที่ดี !! คำตอบของคุณทำให้เกิดปัญหา 'เบื้องหลัง' ว่ามีอะไรเกิดขึ้นจริงมากกว่าแค่ "ใช้แพทช์นี้และคุณก็พร้อมที่จะไป" ฉันชอบคำตอบทั้งสองประเภทรวมอยู่ด้วยกันดังนั้นฉันจึงสามารถเข้าใจได้ตั้งแต่ซุปถึงถั่ว ตอนนี้ฉันรู้แล้วว่าต้องทำงานมากแค่ไหนถ้าคุณทำถูกต้อง - และนั่นเป็นการตอกย้ำว่าทำไมคนเราควรใช้วิธีการที่คนอื่นพูดถึง ! น่ากลัว แม้ว่าคำตอบหลายข้อข้างต้นนั้นดี แต่ฉันให้คะแนนฉันเพราะฉันรู้ว่าการเป็นผู้มาใหม่ในไซต์นี้เป็นอย่างไร มันทำให้ยากมากที่จะช่วยเหลือผู้อื่นเมื่อคุณใหม่
นักโทษ 13

นี่ควรเป็นคำตอบที่ยอมรับได้ ฉันกำลังใช้ mysql 5.5 และ DROP USER ถ้ายังไม่มีให้ใช้ดังนั้นฉันต้องใช้ลบจากไวยากรณ์ผู้ใช้ (ฉันต้องทดสอบการมีอยู่ของผู้ใช้ก่อน) การลบจากตารางผู้ใช้เพียงอย่างเดียวไม่ทำงาน สิทธิ์ในการล้างข้อมูลหรือไม่ คุณต้องลบออกจากตารางอื่น ๆ ด้านบน
alds

4

ข่าวดีก็คือพอปรับแต่ง MySQL ให้ฉันแล้ว ในแท็บการดูแลระบบ -> ผู้ใช้และสิทธิ์ผู้ใช้มีรายชื่ออยู่ด้วยข้อผิดพลาด การใช้ตัวเลือกลบช่วยแก้ปัญหา


3

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

ขั้นตอนที่ 1 ค้นหารูปแบบการบันทึกของตารางผู้ใช้ในฐานข้อมูล mysql

use mysql;
select * from user;

ขั้นตอนที่ 2 ตามคอลัมน์ที่แสดงในขั้นตอนที่ 1 สร้างระเบียนจำลองด้วยชื่อผู้ใช้ ตัวอย่างเช่นใส่ไว้ในตารางเพื่อเตือนให้แทนที่ "ชื่อผู้ใช้" ด้วยชื่อผู้ใช้ของคุณ

Insert into user value ('%','username','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','','','','','0','0','0',
'0','mysql_native_password',
'*52C5E3AC6BC5E2E0BFF86978BF62A1481AC79D58','N',
'2016-12-10 23:59:12',null,'N');

หมายเหตุ: บางครั้งคุณอาจพบปัญหาในการแทรกเพียงเปลี่ยนข้อมูลเพื่อให้ทำงานได้

ขั้นตอน 3. วางผู้ใช้

drop user username;

ตอนนี้คุณสามารถสร้างผู้ใช้ด้วยชื่อเดียวกัน


ลองใช้ DESCRIBE <tablename>
นักโทษ 13

2

โพสต์นี้ข้อผิดพลาดของ MySQL 1045 (28000): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'บิล' @ 'localhost' (ใช้รหัสผ่าน: ใช่)มีประโยชน์ บางครั้งมีผู้ใช้ที่ไม่ระบุชื่อ '' @ 'localhost' หรือ '' @ '127.0.0.1' ดังนั้นเพื่อแก้ปัญหา

  1. ขั้นแรกให้ผู้ใช้วาง 'สร้างผู้ใช้' ล้มเหลว

  2. สร้างผู้ใช้ใหม่

  3. ให้สิทธิ์ที่จำเป็นแก่ผู้ใช้ใหม่

  4. ล้างสิทธิ์


ขอบคุณสำหรับสิ่งนี้. ฉันลืมรัน mysql_secure_installation ซึ่งลบผู้ใช้นิรนาม
ablackhat

2

ฉันมีข้อผิดพลาดเดียวกัน แต่คำสั่ง "สิทธิ์ล้าง;" ไม่ได้ช่วย ฉันทำอย่างนั้น:

CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
UPDATE mysql.user SET USER='jack' WHERE USER='jimmy';

0

เซิร์ฟเวอร์ MySQL กำลังทำงานด้วยตัวเลือก --skip-grant-tables ดังนั้นจึงไม่สามารถดำเนินการตามคำสั่งนี้ได้


0

ฉันรู้ว่านี่เก่า แต่เนื่องจากเป็นผลลัพธ์แรกใน Google ฉันคิดว่าฉันควรเพิ่มโซลูชันของฉัน ในกรณีของฉันการทิ้งผู้ใช้ทำงานได้ดี แต่การสร้างผู้ใช้ใหม่ทำให้ฉัน "ERROR 2013 (HY000): การเชื่อมต่อที่ขาดหายไปกับเซิร์ฟเวอร์ MySQL ในระหว่างการสืบค้น" และ "ERROR 2006 (HY000): เซิร์ฟเวอร์ MySQL หายไปแล้ว" ฉันลองใช้สิทธิ์ล้าง -> วางโซลูชั่นผู้ใช้ แต่ยังคงมีข้อผิดพลาดเดียวกัน

ในกรณีของฉันข้อผิดพลาดเกิดจากการอัพเกรด mysql จาก 5.1 -> 5.6 ดูบันทึกข้อผิดพลาดฉันสังเกตเห็นว่ามีการเรียกใช้ mysql_upgrade ทำอย่างนั้นและคำสั่งผู้ใช้ของฉันสร้างได้ดี


0

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

สิ่งที่ใช้ได้ผลสำหรับฉันคือการตรวจสอบใน mysql workbench 'Users and Privileges' และการตระหนักถึงผู้ใช้ยังคงมีอยู่

หลังจากลบออกจากที่นั่นฉันสามารถสร้างผู้ใช้ใหม่ได้


0

mysql> DELETE FROM mysql.db WHERE user = 'jack'

รีสตาร์ทเซิร์ฟเวอร์:

# mysql.server restart

จากนั้นทำตามCREATE USERคำสั่งของคุณ


สิ่งนี้ไม่มีประโยชน์ ข้อผิดพลาดที่พบบนหลังCREATE DELETE
waqasgard

0

ฉันประสบปัญหานี้ในวันนี้และฉันแก้ไขได้โดยทำตามขั้นตอนต่อไปนี้:

1) การใส่ผู้ใช้ที่สร้างปัญหาให้ด้วยตนเองโดยป้อนค่าของฟิลด์บังคับลงใน mysql.user

mysql> insert into user(Host, User, Password, ssl_type) 
   values ('localhost', 'jack', 'jack', 'ANY');

2)

mysql> select * from user where User = 'jack';
   1 row in set (0.00 sec)

3) A.

mysql> drop user jack;
Query OK, 0 rows affected (0.00 sec)

B. mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

C. mysql> create user 'jack' identified by 'jack';
Query OK, 0 rows affected (0.00 sec)

D. mysql> select Host, User, Password, ssl_type  from user where User = 'jack';
+-----------+-----------+-------------------------------------------+----------+
| Host      | User      | Password                                  | ssl_type |
+-----------+-----------+-------------------------------------------+----------+
| localhost | jack      | jack                                      | ANY      |
| %         | jack      | *45BB7035F11303D8F09B2877A00D2510DCE4D758 |          |
+-----------+-----------+-------------------------------------------+----------+
2 rows in set (0.00 sec)

4) A.

mysql> delete from user 
 where User = 'nyse_user' and 
       Host = 'localhost' and 
       Password ='nyse';
Query OK, 1 row affected (0.00 sec)

บี

mysql> select Host, User, Password, ssl_type  from user where User = 'jack';
+------+-----------+-------------------------------------------+----------+
| Host | User      | Password                                  | ssl_type |
+------+-----------+-------------------------------------------+----------+
| %    | jack      | *45BB7035F11303D8F09B2877A00D2510DCE4D758 |          |
+------+-----------+-------------------------------------------+----------+
1 row in set (0.00 sec)

หวังว่านี่จะช่วยได้


-2

เพียงแค่ลบข้อมูลที่เกี่ยวข้องกับผู้ใช้ออกจาก mysql.db (อาจจะมาจากตารางอื่นด้วย) จากนั้นสร้างทั้งสองขึ้นใหม่


-2

ฉันยังประสบปัญหาเดียวกันหลังจากค้นหาไม่กี่ครั้งฉันพบวิธีแก้ปัญหาที่เหมาะกับฉันฉันหวังว่ามันจะช่วยคุณได้ เมื่อคุณสร้างผู้ใช้แล้วลองทำFLUSH PRIVILEGESบน Mysql console ของคุณ ปัญหานี้อยู่ใน MySql bug post แล้ว คุณสามารถตรวจสอบสิ่งนี้ได้หลังจากล้างข้อมูลแล้วคุณสามารถสร้างผู้ใช้ใหม่ได้ ทำตามขั้นตอนด้านล่าง:

Step-1: Open terminal Ctrl+Alt+T
Step-2: mysql -u root -p  , it will ask for your MySQL password.

ตอนนี้คุณสามารถเห็นคอนโซล Mysql ได้แล้ว

Step-3: CREATE USER 'username'@'host' IDENTIFIED by 'PASSWORD';

แทนชื่อผู้ใช้คุณสามารถใส่ชื่อผู้ใช้ที่คุณต้องการ หากคุณกำลังใช้งาน Mysql บนเครื่องของคุณให้พิมพ์"localhost"แทนโฮสต์มิฉะนั้นให้ชื่อเซิร์ฟเวอร์ที่คุณต้องการเข้าถึง

ตัวอย่าง: สร้างผู้ใช้ smruti @ localhost ระบุโดย 'hello';

ขณะนี้ผู้ใช้ใหม่ถูกสร้างขึ้น หากคุณต้องการให้สิทธิ์การเข้าถึงทั้งหมดจากนั้นพิมพ์

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

ตอนนี้คุณสามารถออกจาก MySQL โดยพิมพ์\qตอนนี้เข้าสู่ระบบอีกครั้ง

mysql -u newusername -pจากนั้นกด Enter คุณสามารถเห็นทุกสิ่ง

หวังว่านี่จะช่วยได้

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