Jak zainstalować mysql na Ubuntu 16.04

8

Postępuję zgodnie z tym przewodnikiem po oceanach cyfrowych dla Ubuntu 14.04, aby zainstalować mysql na Ubuntu 16.04 dla moich projektów Railsowych. Być może błędnie założyłem, że procedura będzie taka sama.

Jednak po uruchomieniu polecenia pojawia sudo mysql_install_dbsię następujący błąd:

2016-06-15 18:40:36 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-06-15 18:40:36 [ERROR]   The data directory needs to be specified.

Jak mogę zakończyć konfigurację? W przeszłości kilkakrotnie z powodzeniem stosowałem tę samą procedurę na Ubuntu 14.04.

Jawad Khawaja
źródło
4
Co zrobić, jeśli robisz to, co sugeruje, że: mysqld --initialize?
Jos
2
@Jos To daje następujący błąd:mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists) 2016-06-15T14:00:28.483462Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-06-15T14:00:28.484374Z 0 [ERROR] Aborting
Jawad Khawaja
2
Prawdopodobnie można obejść ten problem, usuwając katalog /var/lib/mysqli ponownie uruchamiając --initializeproces.
Jos
1
Dziękuję za to! Martwiłem się, że może to powodować problemy, ponieważ zawiera wiele plików. Ale zadziałało. Zakończyłem instalację teraz.
Jawad Khawaja,
@Jos Powinieneś opublikować swój komentarz jako odpowiedź.
Bajt Dowódca

Odpowiedzi:

9

Instalacja serwera MySQL obejmuje około trzy kroki: 1) rozpakowanie oprogramowania; 2) utworzenie domyślnej bazy danych; 3) utworzenie domyślnego użytkownika / hasła (i przechowywanie go w bazie danych).

W razie przypadkowej utraty plików bazy danych (zwykle znajdujących się w /var/lib/mysql) można rozpocząć od nowa bez całkowitej ponownej instalacji pakietu serwera. Odbywa się to za pomocą polecenia mysqld --initialize. Jeśli uruchomisz to polecenie, gdy baza danych jest już na miejscu, zgłosi błąd („Plik istnieje”) i nie będzie próbował zastąpić bazy danych. Jeśli jednak nie masz pewności, czy procedura instalacji zakończyła się poprawnie, możesz usunąć katalog /var/lib/mysqli ponownie zainicjować bazę danych.

--initializeFlag spowoduje wygenerowanie MySQL użytkownika root i losowe hasło, które jest następnie zapisywane w pliku dziennika. Aby uzyskać więcej informacji, zobacz man mysqld.

Jos
źródło