Błąd podczas instalowania mySql na Ubuntu 16.04

15

Postępowałem zgodnie z instrukcjami na tej stronie, aby zainstalować mysql na Ubuntu 16.04.

Znajduję się w połowie tej strony w sekcji zatytułowanej „Instalowanie i konfigurowanie MySQL” i uruchamiam polecenie sudo apt-get install mysql-server. Wystąpił błąd, oto wyjście tego błędu w moim terminalu:

Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 41515 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-common (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-common (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 41563 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

To jest moja pierwsza konfiguracja serwera, a także instalacja mysql. Nie jestem pewien, czy może to być możliwa przyczyna błędu, ale wcześniej próbowałem zainstalować mysql, ale nie postępowałem zgodnie z procesem LAMP (jestem tego świadomy) i to się nie powiodło i musiałem odinstalować.

Darren Haynes
źródło
Witamy w AskUbuntu. W twoim dzienniku jest linia Access denied for user 'debian-sys-maint'@'localhost'. Skąd pochodzi ten użytkownik? Nie spodziewałbym się, że znajdę go w systemie Ubuntu.
guntbert
Cześć Guntbert - przy odrobinie wyszukiwania wydaje się, że jest to debian.cnfplik. Znalazłem ten stackoverflow.com/questions/11644300/... - i patrząc na odpowiedź, która uzyskała 47 punktów (nie zaakceptowaną odpowiedź), istnieje niedopasowanie hasła. Daję temu szansę - bezskutecznie, ponieważ nie wiem, co to jest hasło!
Darren Haynes
Ta odpowiedź rozwiązuje problem bez czyszczenia mysql: /ubuntu//a/793545/597698
Elkana Bardugo

Odpowiedzi:

17

Ta odpowiedź jest również odpowiedzią na aktualizację 16.04 zepsuła serwer mysql, ale nie mogę odpowiedzieć, ponieważ administrator zablokował ją na 10 punktów reputacji.

Błąd w APT występuje podczas aktualizacji Ubuntu do 16.04 (xenial) i Mysql z 5.5 do 5.7. Z powodu niektórych problemów z pakietowaniem aktualizacja APT kończy się w zawieszeniu, ponieważ skrypt po instalacji Mysql-server-5.7 nie został ukończony.

Aby rozwiązać problem, spróbuj wykonać następujące czynności:

  1. apt purge mysql-server i apt autoremovewyczyścić wszystkie ślady starego MYSQL. Dane w bazie danych nie zostaną zniszczone.
  2. Usuń wszystko z /etc/mysqlkatalogu.
  3. Sprawdź, czy nie ma zainstalowanych starych pakietów MySQL: dpkg -l | grep mysql
  4. apt install mysql-server żeby zainstalować

Jeśli te kroki kończą się tą samą niekompletną instalacją, spróbuj następnego kroku:

  1. Tail -n 20 /var/log/mysql/error.log
  2. Błędy mogą być. złe hasło dla debian-sys-maint b. brak pamięci dla Innodb

Rozwiąż 2a: Musisz zaktualizować tabele systemowe Mysql z 5.5 do 5.7

Edytuj plik my.cnf, aby w wierszu „[mysqld]” znalazł się wiersz „skip-grant-tables” service mysql start, imysql_upgrade --force -u root -p

Rozwiąż 2b: Brakuje pamięci dla puli Mysql Innodb (czy korzystasz z serwera o małym rozmiarze?)

Edytuj plik my.cnf, aby zawierał pod „[mysqld]” wiersz innodb_buffer_pool_size = 20M

domyślna pula innodb to 128 MB, co jest ciasne w maszynie wirtualnej 512 MB

Aby usunąć błąd APT, ponownie zainstaluj po instalacji

dpkg --configure -a
Kaceo
źródło
Czy usunie bazy danych, czy pozostanie bezpieczne?
Thirumal
5

Całkowicie usunięcie mysql i ponowna instalacja były rozwiązaniem, do którego ostatecznie doszedłem. Chociaż raz próbowałem odinstalować i zainstalować ponownie bezskutecznie (co spowodowało, że zadałem to pytanie). Po znalezieniu porady na tej stronie spróbowałem dokładniejszego odinstalowania: Całkowicie odinstaluj MySQL

Postępowanie zgodnie z instrukcjami odinstalowywania i ponowna instalacja rozwiązały problem.

Darren Haynes
źródło
5

Kolejne dobre rozwiązanie:

sudo apt-get purge mysql* && sudo apt-get install mysql-server
Pat McSherry
źródło
3

To działało dla mnie:

sudo apt-get remove --purge mysql*

To polecenie zapyta Cię, czy chcesz USUNĄĆ swoje bazy danych od /var/lib/mysqla także usunie wszystkie inne instancje MySQL!

Więc zrób kopię zapasową Twoich baz pierwszy!

Następnie mogłem zainstalować bazę danych, wydając polecenie:

sudo apt-get install mysql-server
Michał Przybylowicz
źródło
1

Spróbuj usunąć wszystkie pakiety i pliki, a następnie ponownie zainstaluj „serwer mysql”

sudo apt-get remove --purge mysql-\*
sudo rm -rf /var/lib/mysql

sudo apt-get install mysql-server 
Spl2nky
źródło
1

Najpierw usuń wszystkie pakiety mysql-server:

sudo rm -rf /var/lib/mysql

Następnie zainstaluj:

sudo apt-get install lamp-server^

Lub możesz zrobić:

sudo apt-get install mysql-server
Tarunkant Gupta
źródło
1
Nie publikuj rm -rf bez informowania, jakie informacje to polecenie zniszczy.
Brian Ng