Ako nastaviť správcovské heslo pre užívateľa „root“ v MariaDB používanom na (nie len) Debiane 9? Mnohých (vrátane mňa) frustruje neobmedzený prístup na administrátora MariaDB bez nutnosti zadávať heslo. A aj napriek tomu, že internet je plný odporúčaní v štýle ALTER a UPDATE ‚root’@’localhost’…. tak naozaj funkčné riešenie je v skutočnosti iné, omnoho jednoduchšie.
Vytáča ma ak zaužívané postupy, ktoré nikdy neboli problematické a fungovali roky bez problémov sa zjavne bez dôvodu menia.
MariaDB je slobodnejším forkom dlhé roky používaného MySQL, ktorý od SUNu prebrala spoločnosť Oracle. Tento krok vždy vyvolával obavy na strane komunity z možnej zmeny licencovania a celkovo k svojskému prístupu Oracle k MySQL keďže je to konkurenčný produkt k ich komerčne predávaným databázovým riešeniam „Oracle DB“.
Bola len otázka času kým sa nájde dostatok vývojárov ktorí mysql forknú na svoj vlastný projekt, dajú mu svoj názov a budú ho vyvíjať ako sa im zapáči. Výsledok je samozrejme MariaDB, ktorá už dnes v mnohom prekonáva tradičný MySQL avšak prináša to aj „nové postupy“ v niektorých veciach na ktorých podľa môjho nebolo treba nikdy nič meniť.
Jednou z týchto vecí je aj úplne voľný prístup k správcovi databázy bez nutnosti zadávať heslo z príkazovej riadky hostu na ktorom SQL beží.
#mysql -u root -p
Enter password: -nič-netreba-písať-
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Človek si povie fajn, treba len niekde niečo zapnúť. Ale ušetrím Vás, všetkých tých kravín v podobe ALTER a UPDATE výrazov ktoré si bežný smrteľník nemá často šancu zapamätať. Prejdem teda rovno na správne a jediné funkčné riešenie.
Riešenie
Po inštalácií MariaDB do systému
#apt-get install mariadb-server #apt-get install mariadb-client
je nutné po inštalačnom procese spustiť príkaz:
#mysql_secure_installation
skript, ktorý ponúkne dodatočné voľby zabezpečenia Vašej databázy, vrátane nastavenia root-ovského hesla. Na všetky voľby (aktuálne k 17.05.2018) odporúčam odpovedať voľbou „y“ (yes). Viete čo je ale na tom všetkom najlepšie? Že ešte stále, ani po tomto kroku nie je prístup na root-a obmedzený. Poslednou, maličkou zmenou je povolenie „pluginu“ ktorý sa o to postará.
# mysql -u root -p
Prihlásenie opäť bez hesla…
use mysql; update user set plugin='mysql_native_password' where user='root'; flush privileges; quit;
Potom skúsim
# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
KONEČNE OMFG!
No matter if some one searches for his required thing, therefore he/she desires to
be available that in detail, so that thing is maintained over here.