Jak połączyć i utworzyć bazę danych w MySQL?


17

Chcę zainstalować MySQL i utworzyć na nim bazę danych, używając następującego kodu:

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

Po wykonaniu drugiego wiersza pojawia się następujący komunikat:

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

Jaki jest problem?


1
Jeśli faktycznie używałeś tych 2 poleceń, gdzie UDZIELIŁEŚ UPRAWNIEŃ dla {nazwa użytkownika} (jeśli nie admin / root), aby mieć dostęp do bazy danych?
Rinzwind

Odpowiedzi:


26

Po zainstalowaniu MySQL musisz ustawić hasło roota mysql . Aby to zrobić:

  1. Wpisz następne polecenie w terminalu:

    mysql -u root

  2. Teraz powinno otworzyć konsolę mysql . I wpisz następujący wiersz:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

Aby wyjść z konsoli mysql, wejdź exit.

Teraz powinieneś utworzyć bazę danych z użytkownikiem root . Aby to zrobić:

  1. Otwórz mysql z terminala:

    mysql -u root -p

  2. Wpisz hasło utworzone wcześniej.

  3. Wpisz następujący wiersz:

    CREATE DATABASE yourdatabasename;

Jeśli wejdziesz SHOW DATABASES;, powinieneś zobaczyć to na liście. Jeśli tak, masz bazę danych gotową do użycia!


mysql -u rootdaje miERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul,

Ten błąd oznacza, że ​​masz już rootużytkownika i hasło. Jeśli zapomniałeś roothasła, przeczytaj dokumentację MySQL .
Lucio,

1

Musisz połączyć się z MySQL przy użyciu użytkownika root i powiązanego z nim hasła. Jeśli chcesz je ustawić, użyj następującego polecenia:sudo mysqladmin -u root -h localhost password 'mypassword'

Następnie możesz skonfigurować dodatkowe konta, postępując zgodnie z tym dokumentem: Jak utworzyć nowego użytkownika i nadać uprawnienia w MySQL


1
Skopiowałem sudo mysqladmin -u root -h localhost password 'mypassword'i wkleiłem go do terminala i dostaję wiadomość Access denied for user 'root'@'localhost' (using password: NO).
user543489

@Bert Ten kod nie działa. To password 'mypassword'nie tak, powinno być-password 'mypassword'
Lucio

czy coś należy zastąpić „mypassword”?
user543489

Wykonałem sudo mysqladmin -u root -h localhost -password 'mypassword', ale rozumiem Access denied for user 'root'@'localhost' (using password: YES).
user543489,

@ user543489 Co się stanie, jeśli wejdziesz mysql -u root?
Lucio

1

Jest to dziwne, ponieważ od 12.04 (zgadując, że używasz Kubuntu 12.04), MySQL jest domyślny. Wygląda na to, że brakuje Ci kilku kroków pomiędzy, więc spójrzmy na to:

Po pierwsze, jak wspomniałeś, zróbmy instalację,

sudo apt-get install mysql-server

Po zainstalowaniu spróbujmy małego testu,

sudo netstat -tap | grep mysql

Po uruchomieniu tego powinieneś zobaczyć tę odpowiedź,

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

Jeśli to nie działa poprawnie, uruchom to polecenie restartu,

sudo service mysql restart

Teraz, aby skonfigurować serwer.

Przejdźmy /etc/mysql/my.cnfdo konfiguracji podstawowych ustawień. Obejmuje to plik dziennika, numer portu itp. Na przykład, aby skonfigurować MySQL do nasłuchiwania połączeń z hostów sieciowych, zmień dyrektywę adresu wiążącego na adres IP serwera:

bind-address            = 192.168.0.5

Następnie zrestartuj demona MySQL,

sudo service mysql restart

Jeśli chcesz zmienić hasło root MySQL, uruchom to:

sudo dpkg-reconfigure mysql-server-5.5

Demon zostanie zatrzymany, a pojawi się monit o nowe hasło.

Gdy skończysz, powinieneś zostać skonfigurowany, a kilka wyszukiwań w Google nauczy Cię, jak utworzyć bazę danych

Źródło: Przewodnik po Ubuntu Server


0

Uruchom to polecenie:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 to numer wersji, dostosuj, jeśli masz inną wersję)

Umożliwi to ustawienie hasła root MySQL, którego można następnie używać z poleceniami mysqladmini mysql.


-1

Po zainstalowaniu MySQL musisz ustawić hasło roota mysql. Aby to zrobić:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

To nie wnosi nic, co nie zostało jeszcze powiedziane w zaakceptowanej odpowiedzi.
guntbert

-1

Wiem, że to 3 lata, ale właśnie miałem ten problem i chciałem opublikować swoją odpowiedź na wypadek, gdyby ktoś zrobił to samo wyszukiwanie.

mysqladmin: connect to server at 'localhost' failed

Oznacza to, że użytkownik nie ma uprawnień do połączenia się z samą bazą danych, zanim jeszcze będzie mogła się zalogować; nie użytkownik bazy danych, twój rzeczywisty użytkownik systemu Linux. Uruchom wszystko jako superużytkownik: sudo mysql -u root -p

Tylko root (użytkownik systemu Linux lub użytkownik z uprawnieniami sudo) może zalogować się do mysql jako użytkownik root (użytkownik bazy danych). Nigdzie nie udokumentowałem tego, ale eksperymenty potwierdziły, że tak było. Możesz utworzyć nowego użytkownika z tymi samymi prawami co użytkownik root, który nie będzie ograniczony.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Teraz użytkownik „newuser” (lub dowolna inna nazwa) może być zalogowany, jak bez sudo, i można go używać do wszystkich potrzeb administracyjnych bazy danych.


1
Użycie słowa probablyw odpowiedzi tutaj jest niezadowolone.
WinEunuuchs2Unix

Cóż, z pewnością nie mogę powiedzieć, że tak jest bez testowania, czy mogę teraz?
WizardStan 17.03.17
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.