Debian & MySQL: mysqlcheck: command not found


Przy pracy z MySQL co jakiś czas warto zaoptymalizować poszczególne tabele. Szczególnie, że przy dłuższej pracy tabele w MySQL mają tendencje do tworzenia nadmiaru danych. Dodatkowo wszystko to powoduje wydłużenie wykonywania zapytań a tym samym powodując spadek wydajności naszych serwisów. Szybką metodą na optymalizację, sprawdzenie oraz naprawę baz jest wykonanie następującego polecenia:

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

ale zamiast zapytania o hasło możemy ujrzeć:

a1:~# mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
-bash: mysqlcheck: command not found

Jak rozwiązać ten problem?

Okazuje się, że przy standardowej instalacji MySQL z repozytoriów Debiana (czyli sławne apt-get install) może mieć problem z umieszczaniem plików wykonywalnych. Efektem tego może być powyższy błąd (ten sam błąd pojawi się również przy próbie wykonanie backupu bazy za pomocą mysqldump).

Rozwiązanie tego problemu jest dość proste. Wystarczy najpierw zlokalizować plik mysqlcheck:

a1:~# locate mysqlcheck
/usr/local/mysql-5.1.41-linux-x86_64/bin/mysqlcheck
/usr/local/mysql-5.1.41-linux-x86_64/man/man1/mysqlcheck.1
/usr/local/mysql-5.1.41-linux-x86_64/mysql-test/r/mysqlcheck.result
/usr/local/mysql-5.1.41-linux-x86_64/mysql-test/t/mysqlcheck.test

Jeżeli się pojawi błąd z poleceniem locate należy zainstalować program locate (apt-get install locate) a następnie ponowić zapytanie.

Już widzimy, że nasz plik mysqlcheck jest umieszczony w /usr/local/mysql-5.1.41-linux-x86_64/bin/mysqlcheck. Teraz wystarczy wykonać polecenie:

a1:~# cp /usr/local/mysql-5.1.41-linux-x86_64/bin/mysqlcheck /usr/bin

Aby sprawdzić czy nasze polecenie już działa poprawnie wykonujemy:

a1:~# mysqlcheck

Powinien się pojawić następujący komunikat (tutaj publikujemy jego fragment)

mysqlcheck Ver 2.5.0 Distrib 5.1.41, for unknown-linux-gnu (x86_64)
By Jani Tolonen, 2001-04-20, MySQL Development Team

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL license.

This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)
or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be
used at the same time. Not all options are supported by all storage engines.
Please consult the MySQL manual for latest information about the
above. The options -c,-r,-a and -o are exclusive to each other, which
means that the last option will be used, if several was specified.

czyli polecenie jest już widoczne w systemie. Teraz nie pozostaje Nam nic innego jak wykonać polecenie:

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

Zostaniemy poproszeni o podanie hasła i program zacznie wykonywać sprawdzenie, naprawę oraz optymalizację baz danych w MySQL.

Tags: , ,

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

Comments are closed.