Причини за достъп грешка отказан

Ако се опитате да се свържете със сървъра MySQL, срещнете достъп грешка отказан. Използвайте списъка по-долу. В него се изброяват мерките, които могат да бъдат предприети, за да се реши този проблем:

Смятате ли, тичам след инсталацията MySQL mysql_install_db скрипт, за да зададем началния съдържанието на таблиците за отпускане на безвъзмездни средства? Ако не, да го направи. Проверете първоначалните привилегии с следната команда:

Свързване да се случи, без да се провалят. Също така трябва да се уверите, че базата данни MySQL директория е user.MYD файл. Обикновено това е в Var директория PATH / / MySQL / user.MYD. където PATH - пътят към MySQL инсталация основната директория.

След нова инсталация трябва да се свържете със сървъра и да се създаде потребители и задаване на разрешения за тях:

Сървър позволи връзка, тъй като MySQL потребител с името на ползвателя на корен не е парола първоначално. Но това също е риск за сигурността, така че при създаването на останалите потребители на MySQL, ще, наред с други неща, трябва да зададете парола за потребителя на корен. Ако се опитате да се свържете както корен, вие ще получите следната грешка:

това означава, че потребителят не е влизане със стойност на маса "корен" в графата за потребителя и Mysqld не може да определи името на хоста, за вашия клиент. В този случай, трябва да рестартирате сървъра с опция --skip-грант-таблици и редактирате файла / и т.н. / Домакините или \ Windows \ домакини. добавите запис за вашия хост.

Ако тази грешка, като:

това означава, че вие ​​използвате грешна парола. Ако забравите паролата за потребителя на корен. рестартирайте Mysqld с --skip-грантови таблици, за да промените паролата. Тази грешка може да възникне дори ако не зададете парола на всички - което означава, че в някои my.ini файл има грешна парола. Премахване на използването на допълнителни файлове, можете да използвате опцията за --no-подразбиране. както е показано по-долу:

Смятате ли, стартира скрипт mysql_fix_privilege_tables при актуализиране на съществуващ MySQL инсталация, ако инсталираната версия - по-рано от 03.22.11, и се актуализира, за да 22.3.11 или по-късно? Ако не, да го направи. Започвайки с MySQL 03.22.11 г., когато декларацията за отпускане на безвъзмездни става функционална привилегия на структурата на таблицата се променя.

Ако по време на сесията, вашите привилегии са се променили, че е възможно те промениха суперпотребител. Презареждане на таблиците за отпускане на безвъзмездни средства се отразява не само на новите свързани клиенти, но също така и да се съществуващите.

Ако не можете да получите паролата, за да работят, не забравяйте, че функция ПАРОЛА () трябва да се използва, ако посочите паролата за вмъкване на отчети. UPDATE или да зададете парола. Ако зададете парола с помощта на отчета за безвъзмездна помощ. Идентифицирани от или командата mysqladmin парола. функция ПАРОЛА () не е необходим.

Localhost - е синоним на името на вашия локален хост, и ако домакинът не е изрично посочено, също е инсталиран по подразбиране, името на хоста, към който клиента се опитват да се свържат. Въпреки това, връзки към Localhost не работят, ако вашата операционна система използва MIT потоци и MySQL версии по-стари от 23.03.27 (свързване към Localhost са направени с помощта на Unix контакти, тъй като те не бяха подкрепени от MIT време технология потоци). За такива системи по целия този проблем, трябва изрично да посочва името на хоста на сървъра с помощта на --host опция. По този начин тя е осъществена връзка с Mysqld на сървър на TCP / IP протокол. В този случай, потребителят на записите в таблицата. съхраняват на хоста-сървър, може да се посочи действителното име на хост. (Това важи дори в случаите, когато програмата за клиента и сървъра работят на същия хост).

Ако се опитате да се свържете към база данни посредством MySQL -u user_name db_name командване изглежда Отказан достъп грешка. причината за това вероятно се крие в таблицата за употреба. За да проверите това, стартирайте команда MySQL-U корен MySQL и въведете следната SQL-декларация:

В резултат на това на записа ще се появи с колоните на хоста и потребителя. съответното наименование на компютъра и MySQL потребителското име.

отказан достъп до съобщения за грешка ви информира какво име се опитвате да влезете в системата, името на хоста, от която се опитвате да се установи връзка, както и дали сте използвали тази парола или не. Като правило, масата за употреба е един запис, който съответства точно на името на хоста и потребителя, посочени в съобщението за грешка. Например, ако получите съобщение за грешка, което гласи Използването парола: NO. Това означава, че сте се опитали да се логнете, без да въвеждате парола.

Ако се опитате да не се свържете на компютъра, който се изпълнява на сървъра, MySQL, и от друга страна, ще получите съобщение за грешка, следното съобщение за грешка в таблицата с потребителското не разполага с низ с името на хоста:

В Linux, причината за тази грешка може да се окаже, че двоична версия на MySQL е компилиран с НЬс версия от тази, използвана от вас. В този случай, ще трябва или да актуализирате OS / НЬс, използван от вас, или да изтеглите изходния код и съставяне на сървъра MySQL себе си. Като правило, на източника RPM се компилира и инсталира елементарно, така че няма да бъде сериозен проблем.

Опитайте се да разбера какво не е наред с вашия DNS сървър и да реши проблема.

Започнете Mysqld с --skip-име-решителност.

Започнете Mysqld с --skip-домакин-кеш.

Свържете се Localhost ако вашият сървър и клиент се движат по един и същ компютър.

Сложете имената на клиентската машина в директорията / и т.н. / домакините.

Ако тест user_name командния MySQL -u работи добре, а екипът MySQL -u user_name other_db_nam е - не, в таблицата с db не е запис, съответстващ на other_db_name.

Ако MySQL -u user_name db_name команда се изпълнява успешно на компютъра, на който сървъра и MySQL -u host_name -u user_name db_name не работи, когато я изпълнява на друг клиент машина, таблицата потребител или ПБ, този клиент машина не е регистрирана.

Ако не можете да намерите причината за достъп за грешка отказан. премахнете от масата за потребителското всички записи, в което стойността в полето Host включва заместващи символи (записи, които съдържат героите ''% '' или '' '_ "). Много често срещана грешка е следната: потребителят въвежда нов рекорд със стойността на '%' в полето Host и стойността на "някои потребител" - в областта на потребителя. вярвайки, а след това да се свърже с една и съща кола, той ще използва Localhost. Това изчисление не е наред, и причината е, че набор от права по подразбиране включват запис със стойност "Localhost" в полето Host и празно поле Потребителя. И тъй като на тази стойност рекорд "Localhost" е по-конкретни от "%", то е, когато се свържете от Localhost предхожда новия албум и, съответно, ще бъде избран и работи! Точно в този случай е да се вмъкне втори запис със стойност "Localhost" в полето за домакин, а стойността на "some_user" - на потребителя или да изтриете запис със стойност "Localhost" в полето Host и празно поле Потребителя.

Ако получите следната грешка, тогава проблемът вероятно е свързан с масата за db, или масата домакин:

Ако избраният запис от таблицата db. Колона домакин - празен, уверете се, че масата за домакин има поне един съответстващ запис показва, към която е домакин на записа се прилага от таблицата на db. Ако възникне грешка, когато SELECT SQL-команда. В OUTFILE или LOAD DATA INFILE. нещо за рекордно в съответната таблица за употреба. вероятно няма разрешение да предоставят ФАЙЛОВИ привилегии.

Не забравяйте, че клиентските програми ще използват параметрите на свързване, определени конфигурационни файлове или променливи на средата. Ако има съмнение, че клиентът изпраща погрешно параметър е връзката по подразбиране, в случаите, когато не ги зададете от командния ред, проверка на околната среда и my.cnf файла във вашата домашна директория. Можете също да проверите конфигурационните файлове MySQL, отнасящи се до всички на системата, въпреки че параметрите на свързване на клиент едва ли е показано тук. Ако Отказан достъп грешка възниква, когато програмата ви клиент, без никакви опции, уверете се, че нито един от опцията си файлове Непознат старата парола!

Ако правите промени в таблиците за отпускане на безвъзмездни средства директно (с помощта на INSERT или UPDATE) и промените Ви изглежда да бъдат пренебрегнати, той трябва да издаде изявление флъш ПРИВИЛЕГИИ или изпълни mysqladmin скрит привилегии - с цел да причини на сървъра да препрочитам таблиците за безвъзмездна финансова помощ. В противен случай, те няма да влязат в сила до следващия път се рестартира сървъра. Не забравяйте, че след като зададете паролата на потребителското име, ще трябва да го посочите само след нулиране привилегии, защото сървъра дори няма да знаят, че сте сменили паролата си!

Ако имате проблеми с достъпа, когато се използват Perl-, PHP-, Python- или ODBC-програми, които се опитват да се свържете със сървъра с командата MySQL -u user_name db_name или команда MySQL -u user_name -pyour_pass db_name. Ако вашият MySQL клиент осигурява връзката, проблемът не е с привилегии за достъп, както и вашата програма. (Имайте предвид, че между -p и паролата не е празно, за да зададете паролата, можете да използвате и синтаксиса --password = your_pass Ако използвате само самото опцията -p MySQL ще ви пита за паролата.).

Когато тестване започва демон Mysqld с --skip-грант-таблици. След това можете да промените грантовите таблици на MySQL и използването на проверката за скрипт mysqlaccess направен дали промените, които сте направили на желания ефект. Ако сте доволни от резултата, тичам mysqladmin скрит привилегии. да разпореди Mysqld сървъра, за да започнете да използвате новите гранта таблици. Предупреждение. презареждане таблиците за безвъзмездна финансова помощ заменя опцията --skip-грантови таблици. Това ви позволява да принуди сървъра, за да започнете да използвате новите гранта таблици, без да завършат своята работа и рестартиране.

Ако всичко друго се провали, започнете Mysqld демон демон с отстраняване на грешки опция (например --debug = г, като цяло, заявка). В резултат на това, ще видите информация за провала на свързан, показващ страната домакин и на потребителя, както и всички преработени команди.

Ако имате проблем с привилегировани таблици на MySQL, и смятате, че трябва да го докладва на пощенския списък, е необходимо да се приложи към своето разпечатка на доклада на грантови таблици на MySQL. Това може да стане с помощта на mysqldump MySQL команда. сигнали за проблеми, както и в други случаи, се изпраща по mysqlbug скрипт. В някои случаи изпълнението на mysqldump на скрипта може да се наложи да рестартирате Mysqld с --skip-грантови таблици.