Nie można ustawić hasła dla użytkownika „root” mysql

16

Jestem nowy w Ubuntu. Używam Ubuntu 12.10. Próbuję zainstalować apache, php, mysql. Jednak zainstalowałem apache i działa on idealnie.

sudo apt-get install apache2

Ale kiedy próbowałem zainstalować mysql za pomocą następującego polecenia

sudo apt-get install mysql-server 

Po pobraniu poprosił o hasło, ale po wprowadzeniu i potwierdzeniu hasła. Otrzymuję następujący komunikat o błędzie.

Nie można ustawić hasła dla użytkownika „root” Mysql

Wystąpił błąd podczas ustawiania hasła dla mysql
użytkownik administracyjny. Może się tak zdarzyć, ponieważ konto ma już hasło lub problem z komunikacją z serwerem Mysql.
Powinieneś sprawdzić hasło do konta po instalacji pakietu.
Proszę przeczytać plik /usr/share/doc/mysql-server-5.5/README.Debian, aby uzyskać więcej informacji.

po kliknięciu przycisku OK w monicie otrzymuję następujący komunikat na terminalu

Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)

Dziennik błędów MySQL mówi

130209 14:26:37 [Note] Plugin 'FEDERATED' is disabled.
130209 14:26:37 InnoDB: The InnoDB memory heap is disabled
130209 14:26:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130209 14:26:37 InnoDB: Compressed tables use zlib 1.2.7
130209 14:26:37 InnoDB: Using Linux native AIO
mysqld: Can't create/write to file '/tmp/ibNuz7q0' (Errcode: 13)
130209 14:26:37  InnoDB: Error: unable to create temporary file; errno: 13
130209 14:26:37 [ERROR] Plugin 'InnoDB' init function returned error.
130209 14:26:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130209 14:26:37 [ERROR] Unknown/unsupported storage engine: InnoDB
130209 14:26:37 [ERROR] Aborting

Szukałem tego problemu, ale nic mi nie działało. Proszę pomóż.

Devendra Verma
źródło
1
Sprawdź, czy mysql-serverjuż zainstalowałeś, uruchamiając ps -e | grep mysqld. Jeśli zobaczysz jakieś dane wyjściowe, oznacza to, że są już zainstalowane.
zielony
Nie otrzymuję żadnych danych wyjściowych w tym celu
Devendra Verma
Błąd mysql, który wysłałeś, może wskazywać na problem z twoim /etc/mysql/my.cnf. Jeśli zmodyfikowałeś ten plik lub dowolny plik w katalogu / etc / mysql, przywróć oryginały i spróbuj ponownie.
Richard Ayotte
Nathan, mam do czynienia z tym samym problemem w tym poście i już postępowałem zgodnie z tymi samymi instrukcjami, co w Green7 i twoim. Nie rozumiem nawet, dlaczego mysql przestał działać. Byłbym szczęśliwy, gdybyś mógł udzielić mi dalszej pomocy. Edycja: Po prostu informuję, że to wszystko się stało, ponieważ zacząłem otrzymywać znikąd następujący komunikat, gdy próbuję zainstalować mysql: ERROR: 1146 Tabela „mysql.user” nie istnieje Z góry dzięki.
nie może odpowiedzieć z powodu niskiej reputacji. Ta istota działa dla mnie gist.github.com/ervinb/63138a504da11a9c27af
gayavat

Odpowiedzi:

25

Ten sam problem z ustawieniem hasła root, tutaj prawdopodobnie spowodowany nieudaną ręczną instalacją serwera mysql 5.6 wcześniej. Dokładna deinstalacja mysql nie jest łatwym zadaniem. Czyściłem / ponownie instalowałem przez wiele godzin, a potem w końcu go rozwiązałem

sudo dpkg --purge mysql-client-core-5.5 # or alternative version
sudo dpkg --purge mysql-client
sudo dpkg --purge mysql-server-core-5.5 # or alternative version
sudo dpkg --purge mysql-common

Zasadniczo piszę

sudo dpkg --purge mysql # followed by two tabs

Następnie --purgewszystkie pakiety, które terminal automatycznie wykonuje. mysql-commonW końcu oczyść z powodu problemów z zależnościami.

Użyj powyższych dpkgpoleceń oprócz

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

Próbowałem też metody Greqa

sudo rm -rf /etc/mysql

Usuń folder mysql z / var / lib

sudo rm -rf /var/lib/mysql/

W tym momencie, aby upewnić się, że mysql jest całkowicie usunięty, sprawdź za pomocą

which mysql
mysql --version

Pierwszy nie powinien zwracać danych wyjściowych zamiast folderu. Drugi powinien zwrócić mysql nie jest zainstalowany zamiast numeru wersji. W przeciwnym razie usunięcie jest nadal niepełne.

Znaczenie dpkg --purgeprzy korzystaniu z niego apt-getsamego which mysqli mysql --versionzachowaniu się tak, jakby mysql wciąż tam był.

Przed ponowną instalacją ponownie skonfiguruj dpkg i zaktualizuj

sudo dpkg --configure -a
sudo apt-get update

Problem rozwiązany w końcu. Mam nadzieję, że będzie to pomocne dla innych ludzi.

Sophia Feng
źródło
3
W moim przypadku, gdy: sudo dpkg --purge mysql-common Nie działa z: dpkg: problemy z zależnością uniemożliwiają usunięcie mysql-common: mysql-client-5.5 zależy od mysql-common (> = 5.5.35-0ubuntu0.12.04. 2). libmysqlclient18 zależy od mysql-common (> = 5.5.35-0ubuntu0.12.04.2). dpkg: błąd przetwarzania mysql-common (--purge): problemy z zależnością - brak usuwania Napotkano błędy podczas przetwarzania: mysql-common
ses
To również działało dla mnie.
Michael Lindman
Od jakiegoś czasu szukałem zestawu instrukcji, które w pełni rozwiązałyby sytuację. To działało tak, jak opisano. Dzięki.
Matt Setter,
Pracował dla mnie dzięki stary! Szkoda, że ​​linux wykonuje tak niechlujną pracę z umieszczaniem plików!
southerton
ostatecznie pracował dla mnie. Wydaje mi się, że zrestartowanie systemu mimo wszystko mogło pomóc mi przejść przez to!
Danimal,
5

Musisz całkowicie usunąć mysql. Uwierz mi, próbowałem. dpkg nie zrobi tego sam.

Widzieć

/programming/10853004/removing-mysql-5-5-completely

Jeśli się śpieszysz

sudo service mysql stop  #or mysqld
sudo killall -9 mysql
sudo killall -9 mysqld
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server-core-5.5
sudo apt-get purge mysql-client-core-5.5
Pedro Braconnot
źródło
Proszę pana, jesteś bohaterem! Spędziłem godziny na wyszukiwaniu i wypróbowywaniu różnych porad na całym świecie, a tylko twoje rzeczywiście działały! Myślę, że różnica polega na usunięciu użytkownika mysql, ponieważ próbowałem już większości innych opcji. PS: Musiałem wykonać kill -9kilka procesów przed deluser mysqlpomyślnym uruchomieniem polecenia.
Shautieh
3

Myślę, że powodem jest to, że mysqlnie ma dostępu do twojego /tmp/katalogu, jak mówi wiersz

mysqld: Nie można utworzyć / zapisać do pliku '/ tmp / ibNuz7q0' (Errcode: 13)

Uruchom następujące polecenia w terminalu:

sudo su
chown root: root / tmp
chmod 1777 / tmp
/ usr / sbin / mysqld &

Objaśnienie :

  • sudo su: Aby uruchomić następujące polecenia jako root.
  • chown root:root /tmp: Należy użytkownikowi rootw rootgrupie właściciel /tmp.
  • chmod 1777 /tmp: Zmień uprawnienia /tmp, aby był dostępny dla wszystkich użytkowników i tylko właściciel lub użytkownik rootmógł usuwać pliki w tym katalogu. (Więcej na temat uprawnień do plików tutaj )
  • /usr/sbin/mysqld &: Uruchom mysqlddemona.
Zielony
źródło
po wprowadzeniu ostatniego polecenia pojawia się ten komunikat # /etc/init.d mysqld start bash: /etc/init.d: ​​Czy katalog
Devendra Verma
zmodyfikowałem odpowiedź
zielony
Otrzymuję ten wynik po / usr / sbin / mysqld & / usr / sbin / mysqld & [1] 3497. Jak sprawdzić, czy mysql działa
Devendra Verma
Aby sprawdzić, czy mysql działa, uruchom, ps -e | grep mysqlda jeśli otrzymasz jakieś dane wyjściowe, działa poprawnie.
zielony
dzięki @ green7 tutaj jest wyjście ps -e | grep mysqld 1075? 00:00:04 mysqld
Devendra Verma
2

Wczoraj zmagałem się z tym przez kilka godzin i przeczytałem wszystko, co Google ma w swoim indeksie na temat problemu.

Ponownie zainstalowałem mysql 20 razy. To prawdopodobnie dosłowna postać.

Wreszcie jeden z nich lub oba rozwiązały problem (po odinstalowaniu / wyczyszczeniu / wypaleniu mysql):

  1. sudo rm -rf /etc/mysql (nie zostało to usunięte po czyszczeniu)
  2. Następnie wyłączam serwer i zmieniłem rozmiar mojego wystąpienia VM z 512 MB na 1 GB (RAM).

Następnie uruchomiłem sudo aptitude install mysql-serveri ostatecznie udało się zainstalować:

$ sudo aptitude install mysql-server
[sudo] password for [REDACTED]: 
The following NEW packages will be installed:
  libdbd-mysql-perl{a} libmysqlclient18{a} mysql-client-5.5{a} mysql-common{a} mysql-server mysql-server-5.5{a} mysql-server-core-5.5{a} 
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,589 kB of archives. After unpacking 94.6 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://ftp.us.debian.org/debian/ wheezy/main mysql-common all 5.5.31+dfsg-0+wheezy1 [85.3 kB]
Get: 2 http://ftp.us.debian.org/debian/ wheezy/main libmysqlclient18 amd64 5.5.31+dfsg-0+wheezy1 [687 kB]
Get: 3 http://ftp.us.debian.org/debian/ wheezy/main libdbd-mysql-perl amd64 4.021-1+b1 [126 kB]
Get: 4 http://ftp.us.debian.org/debian/ wheezy/main mysql-client-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,923 kB]
Get: 5 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-core-5.5 amd64 5.5.31+dfsg-0+wheezy1 [3,784 kB]
Get: 6 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,900 kB]
Get: 7 http://ftp.us.debian.org/debian/ wheezy/main mysql-server all 5.5.31+dfsg-0+wheezy1 [83.6 kB]
Fetched 8,589 kB in 2s (3,068 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 52430 files and directories currently installed.)
Unpacking mysql-common (from .../mysql-common_5.5.31+dfsg-0+wheezy1_all.deb) ...
Selecting previously unselected package libmysqlclient18:amd64.
Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package libdbd-mysql-perl.
Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1+b1_amd64.deb) ...
Selecting previously unselected package mysql-client-5.5.
Unpacking mysql-client-5.5 (from .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server-core-5.5.
Unpacking mysql-server-core-5.5 (from .../mysql-server-core-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Processing triggers for man-db ...
Setting up mysql-common (5.5.31+dfsg-0+wheezy1) ...
Selecting previously unselected package mysql-server-5.5.
(Reading database ... 52616 files and directories currently installed.)
Unpacking mysql-server-5.5 (from .../mysql-server-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.5.31+dfsg-0+wheezy1_all.deb) ...
Processing triggers for man-db ...
Setting up libmysqlclient18:amd64 (5.5.31+dfsg-0+wheezy1) ...
Setting up libdbd-mysql-perl (4.021-1+b1) ...
Setting up mysql-client-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-core-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-5.5 (5.5.31+dfsg-0+wheezy1) ...
Stopping MySQL database server: mysqld.
131124 15:39:56 [Note] Plugin 'FEDERATED' is disabled.
131124 15:39:56 InnoDB: The InnoDB memory heap is disabled
131124 15:39:56 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131124 15:39:56 InnoDB: Compressed tables use zlib 1.2.7
131124 15:39:56 InnoDB: Using Linux native AIO
131124 15:39:56 InnoDB: Initializing buffer pool, size = 128.0M
131124 15:39:56 InnoDB: Completed initialization of buffer pool
131124 15:39:56 InnoDB: highest supported file format is Barracuda.
131124 15:39:56  InnoDB: Waiting for the background threads to start
131124 15:39:57 InnoDB: 5.5.31 started; log sequence number 1595675
131124 15:39:57  InnoDB: Starting shutdown...
131124 15:39:58  InnoDB: Shutdown completed; log sequence number 1595675
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Setting up mysql-server (5.5.31+dfsg-0+wheezy1) ...
Greg
źródło
1

Wpisz, sudo apt-get purge mysql-server && sudo apt-get install mysql-serverjeśli to nie działa, zostaw komentarz do mojej odpowiedzi, a ja będę współpracować z tobą, aby rozwiązać ten problem.

Nathan Suchy
źródło
0

Skrypty instalacyjne dla wszystkich wersji Ubuntu po 12.04 nie przebiegają tak samo jak 12.04. W 12.04 wyraźnie zostałeś poproszony o ustawienie hasła mysql podczas instalacji. W przypadku wersji 12.10 i później po prostu prosi o hasło root mysql, ale jakie to hasło? Skrypt instalacyjny jest krokiem wstecz. Polecam zainstalowanie 12.04 na maszynie wirtualnej i zainstalowanie tam mysql. Jeśli jesteś podobny do mnie i używasz tego w połączeniu z Drupalem, zdecydowanie trzymaj się 12.04.

Gary
źródło
0

Inne rozwiązanie dla tych, którzy nadal mają problemy. Mam nadzieję, że mogę pomóc tym, którzy próbują ponownie zainstalować MySQL. Uwaga, jest to misja typu „szukaj i zniszcz”. Więc bądźcie zmęczeni. Zakładając swój root:

apt-get purge mysql*
apt-get purge dbconfig-common #the screen used for mysql password
find / -name *mysql*          #delete any traces of mysql
#insert apt-get cleanups, autoremove,updates etc.

Pierwotnie coś, co pozostało, zakłócało moje uruchomienie mysqlserver-5.5. Te polecenia ostatecznie rozwiązały problem.

mastash3ff
źródło