Zaraz po zainstalowaniu MySQL będziesz miał root
dostępny użytkownik.
To jest użytkownik, którego możesz użyć, aby sprawdzić, czy MySQL działa, ale nie powinien to być użytkownik do innych zastosowań.
Czemu? Ponieważ jest zbyt potężny .
Z wielką mocą wiąże się wielka odpowiedzialność (powiedział wujek Spider-Mana). A w szczególności wielkie niebezpieczeństwo, jeśli popełnisz błędy.
Zamiast tego powinieneś tworzyć użytkowników ad hoc, którzy mają tylko uprawnienia do wykonywania swojej pracy i nie więcej. To samo w przypadku korzystania z Linuksa lub dowolnego systemu Unix, na przykład:nie chcesz używać root
użytkownika, ale Twoje własne konto użytkownika.
Aby utworzyć nowego użytkownika, połącz się z MySQL za pomocą root
użytkownik:
mysql -u root -p
następnie użyj polecenia
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Na przykład, aby utworzyć użytkownika o nazwie test_user
z hasłem test_password12A
uruchom polecenie:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Polecenie powinno zwrócić linię o treści Query OK, 0 rows affected (X.XX sec)
:
Jeśli użyłeś nieprawidłowego hasła, system powie ci coś w stylu ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. W tym przypadku błąd mówi, że hasło nie jest wystarczająco złożone, ponieważ po zainstalowaniu MySQL powiedziałem mu, aby używał określonej polityki haseł.
To wspaniale! Teraz użytkownik został utworzony i możemy połączyć się za jego pomocą z MySQL. Z wiersza poleceń możesz wyjść, wpisując QUIT
i wpisując:
mysql -u test_user -p
Teraz, gdy próbuję utworzyć bazę danych, otrzymuję błąd mówiący ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Czemu? Ponieważ użytkownik nie ma uprawnień do tworzenia nowej bazy danych .
Zobaczymy, jak pracować z uprawnieniami w innym samouczku.
Warto wspomnieć o @'localhost'
ciąg, którego użyliśmy do stworzenia użytkownika. To mówi MySQL, że użytkownik może łączyć się tylko z hosta lokalnego. Co jest w porządku podczas testowania rzeczy i gdy jakakolwiek aplikacja, która połączy się z MySQL, działa na tym samym komputerze, na którym działa DBMS.
Jeśli to nieprawda, musisz ręcznie wprowadzić adres IP, z którego użytkownik będzie się łączyć, lub użyć %
symbol wieloznaczny:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Chcę zamknąć ten samouczek, pokazując, jak usunąć utworzonego użytkownika:
DROP USER 'test_user'@'localhost';