การเพิ่มผู้ใช้ไปยัง MySQL ด้วย 'name' @ '%' ล้มเหลวด้วย ERROR 1396


9

ฉันแค่พยายามเพิ่มผู้ใช้ใหม่ไปยัง MySQL โดยใช้

CREATE USER 'name'@'%' IDENTIFIED BY '...'

อย่างไรก็ตามมันล้มเหลวด้วยข้อผิดพลาดต่อไปนี้:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

การเพิ่มผู้ใช้สำหรับ localhost นั้นทำได้ดี:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

ฉันไม่มีเงื่อนงำสิ่งที่อาจเป็นปัญหาได้ ฉันจะขอบคุณสำหรับความคิดใด ๆ

(ฉันใช้mysql Ver 14.14 Distrib 5.1.66อยู่)


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

คำตอบ:


13

ตามเอกสารถ้าคุณใช้ @ 'ชื่อโฮสต์' (นั่นคือสร้างชื่อผู้ใช้ ') MySQL จะตีความมันเนื่องจากมี @'% ' ข้อความแสดงข้อผิดพลาดที่คุณให้ไว้แนะนำว่ามีชื่อผู้ใช้ '@'% 'อยู่ในระบบแล้ว:

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

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

ดูคำถาม SO นี้สำหรับข้อมูลเพิ่มเติม


1

ฉันพบข้อผิดพลาดเดียวกันนี้ในขณะที่ใช้อิมเมจ mysql: 5.7 ข้อผิดพลาดหลักคือพยายามสร้างrootผู้ใช้ซึ่งมีอยู่ตามค่าเริ่มต้น ข้อมูลเพิ่มเติม: https://github.com/docker-library/mysql/issues/129

ตามที่ระบุในลิงก์ด้านบนโซลูชันจะไม่ถูกตั้งค่าMYSQL_USERและMYSQL_PASSWORDในตัวแปรสภาพแวดล้อมในขณะที่เริ่มต้นรูปภาพของนักเทียบท่า


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