2012-11-13 35 views
60

मेरे पास नया उपयोगकर्ता बनाने के लिए mysql उपयोगकर्ता सूची देखने के लिए कोई प्रश्न है।mysql उपयोगकर्ता बनाते हैं तो

ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF (SELECT EXISTS(SELECT 1 FROM `mysql`.`user` WHERE `user` = 'cms_localhost')) = 0 ' at line 1 

उत्तर

207

5.7.6 में और इसके बाद के संस्करण, आप का उपयोग करने के CREATE USER

CREATE USER IF NOT EXISTS 'user'@'localhost' IDENTIFIED BY 'password'; 

ध्यान दें कि 5.7.6 विधि वास्तव में किसी भी अनुमति प्रदान नहीं करता है सक्षम होना चाहिए।


आप जो इस क्षमता (5.7.6 नीचे कुछ) है एक संस्करण का उपयोग नहीं कर रहे हैं, तो आप क्या कर सकते हैं निम्नलिखित: अगर ऐसा नहीं होता है

GRANT ALL ON `database`.* TO 'user'@'localhost' IDENTIFIED BY 'password'; 

इस उपयोगकर्ता पैदा करेगा मौजूद

+6

मुझे लगता है कि यह वास्तव में स्वीकार्य उत्तर होना चाहिए। – GoinAum

+1

क्या यह पासवर्ड बदलता है यदि उपयोगकर्ता मौजूद था और एक अलग पासवर्ड था? – m3z

+2

कभी नहीं - मेरे अपने प्रश्न का उत्तर दें - हाँ यह करता है - लेकिन यदि उपयोगकर्ता अलग-अलग – m3z

-1

आप का उपयोग नहीं कर सकते हैं तो बयान में, अगर बयान के लिए और अगर() फ़ंक्शन यहाँ http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

की जाँच करें:

IF (SELECT EXISTS(SELECT 1 FROM `mysql`.`user` WHERE `user` = '{{ title }}')) = 0 THEN 
    CREATE USER '{{ title }}'@'localhost' IDENTIFIED BY '{{ password }}' 
END IF; 

लेकिन मैं इस त्रुटि मिलती है।

+0

अगर (चुनिंदा मौजूद है (' mysql'.'user' जहां 'user' = 'जड़' से चयन उपयोगकर्ता), 1, 2) एक ही त्रुटि – sweb

-4

मैं उपयोग

चयन मौजूद है (mysql से चयन DISTINCT useruser कहां user = "usernam ई ") is_user

के रूप में 1 लौटना चाहिए अगर मौजूद है या 0 यदि ऐसा नहीं होता है

+2

सवाल यह नहीं है कि कैसे जांचें, लेकिन कैसे बनाएं – VladL

संबंधित मुद्दे