Podstawy MySQL w konsoli Linuxa
MySQL jest bodajże najpopularniejszym system zarządzania relacyjnymi bazami danych stosowanym dla aplikacji internetowych, zresztą nie tylko internetowych. Wiele popularnych CMS, takich jak WordPress, Joomla, czy Drupal wykorzystują do działania właśnie MySQL.
Z tego co zaobserwowałem, to lwia część użytkowników korzysta z MySQL poprzez phpMyAdmin, dlatego dzisiaj postaram się pokazać jak korzystać z MySQL z konsoli Linuxa. Jest to ciekawe rozwiązanie chociażby z dlatego, że można tworzyć skrypty które automatyzują pracę.
Naturalne jest to, że aby skorzystać z serwera należy mieć go zainstalowanego 😉 potrzebne będą dwa pakiety mysql-server oraz mysql-client, jeśli nie są one zainstalowane, należy zrobić to teraz.
Teraz można połączyć się z bazą:
1 | mysql --user=UŻYTKOWNIK --password=HASŁO |
Można zrobić to również w nieco krótszy sposób:
1 | mysql -u UŻYTKOWNIK -pHASŁO |
To nie błąd, po -p nie ma spacji ;p. Można połączyć się również w taki sposób aby hasło nie było widoczne na ekranie:
1 | mysql --user=UŻYTKOWNIK --password |
Lub w nieco krótszej formie:
1 | mysql -u username -p |
Następnie w kolejnej linii w konsoli zostaniemy poproszeni o hasło. Proszę nie panikować, hasło nie będzie się wyświetlało podczas jego wprowadzania. Zapewnia to większe bezpieczeństwo, hasło nie zostaje zapamiętane chociażby w Bash history. Należy jednak pamiętać, że ten sposób nie zadziała w przypadku gdy zaistnieje potrzeba stworzenia skryptu.
Gdy chcemy połączyć się z MySQL znajdującym się na innym hoście niż lokalny używamy:
1 | mysql -h JAKIŚ-HOST.PL -u UŻYTKOWNIK -pHASŁO |
Teraz gdy już jesteśmy połączeni z MySQL, pora na podstawowe komendy wykonywane już nie w powłoce (na przykład Bashu), a już w MySQL.
Tworzenie nowej bazy danych:
1 | mysql> CREATE DATABASE nowa_baza; |
Praca z bazą danych:
1 | mysql> USE nowa_baza; |
Tworzenie nowego użytkownika bazy, oraz nadanie mu wszystkich praw do danej bazy:
1 | GRANT ALL ON nowa_baza.* TO UŻYTKOWNIK_BAZY@localhost IDENTIFIED BY 'HASŁO'; |
Usuwanie bazy:
1 | mysql> DROP DATABASE nowa_baza; |
Wyświetlanie wszystkich dostępnych baz:
1 | mysql> show databases; |
Otrzymamy wynik podobny do tego:
1 2 3 4 5 6 7 8 | +--------------------+ | Database | +--------------------+ | information_schema | | nowa_baza | | inna_baza | | mysql | +--------------------+ |
Po za bazami tworzonymi przez użytkowników zawszę otrzymamy jeszcze dwie dodatkowe information_schema i mysql, jak nietrudno się domyślić znajdują się w nich wszystkie ustawienia dotyczące samego MySQL, jak i listę użytkowników jakich mamy utworzonych – listę użytkowników można wyświetlić wklepując poniższe polecenie:
1 | mysql> SELECT user, password, host FROM mysql.user; |
Opisałem tylko te najbardziej podstawowe zagadnienia, więcej informacji można wyszukać jak zwykle to bywa w pomocy:
1 | mysql> help contents |
Do wyboru są następujące kategorie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | You asked for help about help category: Contents For more information, type 'help ', where is one of the following categories: Account Management Administration Compound Statements Data Definition Data Manipulation Data Types Functions Functions and Modifiers for Use with GROUP BY Geographic Features Language Structure Plugins Table Maintenance Transactions User-Defined Functions Utility |
Wybiera się je za pomocą:
1 | mysql> help Nazwa Kategorii |
Na przykład:
1 | mysql> help Table Maintenance |