Ако получавате грешка, която ви казва, че достъпът е отказан за root
потребител в MariaDB, тази статия може да помогне.
Грешката
Опитвах се да импортирам информацията за часовата зона на моята система в MariaDB със следната команда:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Но това доведе до следната грешка:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Причината
След като проучих това, разбрах, че root
потребителят все още не е имал зададена парола.
Когато изпълних следната заявка:
SELECT user, password
FROM user
WHERE User = 'root';
Получих следния резултат:
+-------------+----------+ | User | Password | +-------------+----------+ | root | invalid | +-------------+----------+
Документацията на MariaDB гласи следното:
Все пак някои потребители може да пожелаят да влязат като MariaDB root, без да използват sudo. Следователно старият метод за удостоверяване - конвенционална парола за MariaDB - все още е наличен. По подразбиране той е деактивиран („невалиден“ не е валиден хеш на паролата), но можете да зададете паролата с обичайния
SET PASSWORD
изявление. И все пак запазвайте достъпа без парола чрез sudo.
Така че това изглежда като нашия отговор.
Решението
Съгласно горния параграф, трябваше да задам паролата за root
потребител:
SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");
Изпълнението на това (с различна парола) свърши работа.
Така че, ако получите горната грешка, може би това ще помогне.