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?

użytkownik543489
źródło
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!

Lucio
źródło
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

Bert
źródło
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

sharksfan98
źródło
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.

Nicolas Raoul
źródło
-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).
Swathi S.
źródło
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.

WizardStan
źródło
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