Snažil som sa nájsť v niektorých článkoch popisujúcich, ako správne spustiť & zastaviť mysql server.
Našiel som tento odkaz: Ako spustiť/zastaviť MySql server na Ubuntu 8.04 | Abhi's Blogging World
Spustil som tento príkaz:
/etc/init.d/mysql start
ale vidím túto chybu
ERROR 1045 (28000) Access denied for user....
Po tom, čo som vyskúšal tento príkaz:
sudo /etc/init.d/mysql start
Zadal som svoje heslo a opäť sa mi zobrazila rovnaká chyba.
Ďalší príkaz:
sudo /etc/init.d/mysql - root -p start
Výsledkom je:
ERROR 1049 (42000) Unknown database 'start'.
A keď spustím tento príkaz:
sudo service mysql start
MySQL server úspešne spustený. Super!
Takže, čo'je zlé s ostatnými príkazmi? Prečo majú za následok chybu?
Vaše prvé dva príkazy neboli spustené ako root, takže je to očakávané správanie. Na zastavenie/spustenie mysql musíte byť root.
Avšak:
sudo /etc/init.d/mysql start
by malo fungovať. Mne to naozaj funguje:
kojan:~> sudo /etc/init.d/mysql restart
[sudo] password for chris:
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Použil som reštart namiesto štartu, pretože to už bežalo, ale účinok je rovnaký. Ste si istý, že ste správne zadali heslo? :) Upravovali ste vôbec konfiguráciu sudo, ktorá by zabránila tomu, aby to fungovalo?
Tento..
sudo /etc/init.d/mysql - root -p start
Argumenty sú nesprávne. skript init.d prijíma len start
alebo stop
alebo restart
- len jedno slovo, ktoré mu hovorí, čo má robiť. Nemôžete mu dať viacero argumentov, ako ste sa pokúšali urobiť.
Každopádne, krátka odpoveď je tá, ktorá vám skutočne funguje, je odporúčaný spôsob. service
časom nahradí všetky skripty init.d, takže by ste si mali zvyknúť používať service
. Stránka, na ktorú odkazuješ, je 3 roky stará, takže ju treba brať s rezervou :)
Pomôže aj dvojitá kontrola, že "mysql" je správny názov služby. V mojom prípade to tak nebolo. Pri spúšťaní som dostával nasledujúcu odpoveď: mysql: unrecognized service
service mysql status
Potom som skontroloval /etc/init.d a našiel som skript s názvom mysqld, ktorý uvádzal názov procesu: mysqld a prog=mysqld
Tak som potom urobil
service mysqld status
service mysqld stop
service mysqld start
a všetky fungovali dobre.