2012-06-08 6 views
23

से इनकार कर दिया गया है मुझे अपने सर्वरों में से किसी एक पर एक निश्चित क्वेरी के साथ समस्याएं आ रही हैं। अन्य सभी स्थानों पर मैंने इसका परीक्षण किया है यह पूरी तरह से ठीक काम करता है लेकिन सर्वर पर मैं इसका उपयोग करना चाहता हूं यह काम नहीं कर रहा है।MySQL त्रुटि: # 1142 - SELECT कमांड उपयोगकर्ता को

यह निम्न एसक्यूएल के बारे में बताया गया है:

SELECT facturen.id   AS fid, 
     projecten.id   AS pid, 
     titel, 
     facturen.totaal_bedrag AS totaal, 
     betaald, 
     datum 
FROM facturen, 
     projecten 
WHERE facturen.project_id = projecten.id 
     AND projecten.eigenaar = '1' 
ORDER BY datum DESC 

यह त्रुटि कोड है मैं इसे से मिलता है:

SELECT command denied to user 'marco'@'localhost' for table 'projecten'

टेबल: facturen:

CREATE TABLE IF NOT EXISTS `facturen` (
    `id` int(11) NOT NULL auto_increment, 
    `project_id` int(11) NOT NULL, 
    `datum` int(11) NOT NULL, 
    `lever_datum` int(11) NOT NULL, 
    `totaal_bedrag` decimal(9,2) NOT NULL, 
    `btw` decimal(9,2) NOT NULL, 
    `bedrijf` varchar(40) NOT NULL, 
    `contactpersoon` varchar(60) NOT NULL, 
    `adres` varchar(60) NOT NULL, 
    `postcode` varchar(7) NOT NULL, 
    `plaats` varchar(30) NOT NULL, 
    `betaald` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200006 ; 

projecten :

CREATE TABLE IF NOT EXISTS `projecten` (
    `id` int(11) NOT NULL auto_increment, 
    `titel` varchar(80) NOT NULL, 
    `eigenaar` int(11) NOT NULL, 
    `creatie_datum` int(11) NOT NULL, 
    `eind_datum` int(11) NOT NULL, 
    `totaal_bedrag` decimal(9,2) NOT NULL, 
    `btw` decimal(9,2) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200004 ; 

अजीब बात यह है कि 'प्रोजेक्टन' टेबल और 'फैक्टरिन' दोनों टेबल पर हर दूसरी क्वेरी पूरी तरह ठीक काम करती है, यह क्वेरी मेरे दो अन्य सर्वरों पर भी ठीक काम करती है।

+0

bt2.projecten में bt2 क्या है? –

+0

विशेषाधिकार समस्या? –

+0

मेरा से एक टाइपो क्योंकि मैंने इसे अपने पुराने डेटाबेस से यहां कॉपी किया है। यह मुख्य डेटाबेस पर नहीं था इसलिए समस्या हल नहीं हुई है। इसके अलावा मुझे एक विशेषाधिकार समस्या नहीं है क्योंकि मुझे पूर्ण पहुंच मिली है। – Seph

उत्तर

11

आप MySQL उपयोगकर्ता के लिए चयन अनुमति प्रदान करने की जरूरत है जो MySQL

एक ही प्रश्न के रूप में यहाँ Error: select command denied to user '<userid>'@'<ip-address>' for table '<table-name>'

लिंक का जवाब देखने के लिए कनेक्ट कर रहा है;)

+0

पहले से ही कोशिश की है और यह अभी भी काम नहीं कर रहा है, लेकिन वैसे भी धन्यवाद। – Seph

+3

क्या आपको इसका उत्तर मिला? मेरे पास अब एक ही समस्या है। उपयोगकर्ता के पास विशेषाधिकार हैं, लेकिन इस तालिका से चयन नहीं कर सकते हैं। – Kenzo

+0

यह गलत चयन अभिव्यक्ति हो सकती है, यह 5.7 में होती है (अधिक सख्त लगती है) – nvvetal

2

इस में वें विशेषाधिकार मुद्दा है आपके डेटाबेस उपयोगकर्ता। स्थानीयहोस्ट 'मार्को' को स्थानीयहोस्ट

1

तो जिस मुद्दे में मैं भाग गया था वह यह था ... मैं जिस एप्लिकेशन को अनुमति देता था वह स्कीमा को परिवर्तित करता था। गलत नाम गलत तालिका में एक डीबी स्टेटमेंट में परिवर्तित करता है , इसलिए अनुदान वास्तव में गलत था, लेकिन जब हमने उपयोगकर्ता नाम के लिए अनुदान अनुदान किया था तो आप सही दिखते थे, यदि आप अनुदान चयन बनाम अनुदान तालिका चयन पर बहुत करीबी ध्यान नहीं दे रहे थे। टेबल डब्ल्यू/Schema के उचित भागने पर अनुदान चयन को मैन्युअल रूप से सुधारना। Table ने मेरी समस्या हल की।

असंबद्ध हो सकता है, लेकिन मैं कल्पना कर सकता हूं कि कोई क्लाइंट यह गलत करता है, कोई और भी हो सकता है।

आशा है कि यह सहायक है।

-2

MySQL क्वेरी ब्राउज़र में टूल्स टैब> MySQL व्यवस्थापक> उपयोगकर्ता व्यवस्थापन पर जाएं और फिर उपयोगकर्ता को विशेषाधिकार दें।

+0

प्रश्न कुछ अनिर्दिष्ट ब्राउज़र के बारे में नहीं था, केवल शुद्ध MySQL – SBH

4

मुझे यह समस्या भी थी और मेरे लिए, समस्या यह थी कि मैं एक नए सर्वर में स्थानांतरित हुआ और डेटाबेस जो मैं अपने PHP कोड से कनेक्ट करने का प्रयास कर रहा था, "my_Database" से "my_database" में बदल गया।

11

मुझे एक ही स्थिति का सामना करना पड़ा लेकिन यह अजीब बात है कि त्रुटि का कारण गलत डेटाबेस या स्कीमा नाम के उपयोग के कारण था।

यह सच है कि कई मुद्दों से आपके द्वारा उल्लिखित त्रुटि हो सकती है।

-2

यह माइस्क्ल में उपयोगकर्ता के निजीकरण के बारे में है, इसलिए आपको अपने उपयोगकर्ताओं के साथ बड़े अनुदान सेट करना चाहिए।

ऐसा करें!

टर्मिनल में, कोड mysql> show grants;

डाल तो इस तरह निम्नलिखित कोड बदलने के लिए:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*3F9DF5A32114E05C12C50A83EAE02991016C917B' WITH GRANT OPTION;

तो यह किया जाएगा।

3

यह त्रुटि एलियासिंग टैबलेटनाम के कारण एक वाक्यविन्यास त्रुटि के लिए भी उत्पन्न होती है।

उदाहरण है, जब क्वेरी के नीचे मार डाला के लिए,

select * from a.table1, b.table2 where a.table1= b.table2

त्रुटि नीचे होती है:

MySQL Error: #1142. Response form the database. SELECT command denied to user "[email protected]" for table "table1"

समाधान: सिंटैक्स अन्य नाम पर tablename उचित इस्तेमाल किया जाना चाहिए, इसके बाद के संस्करण उदाहरण के लिए वाक्य रचना समाधान> table1 ए से चुनें *, table2 b जहां a.table1 = b.table2

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