Päivitin koko järjestelmän ja myös mysql päivittyi versioon 4.1.20 jostain vanhasta versiosta. Mutta nyt tuli ongelmia..
mysql -u root -h localhost -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Mitäs tämä nyt tarkoittaa?
mysql -u root -h localhost -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Mitäs tämä nyt tarkoittaa?
Vastaukset 6
Vanhimmat
Todennäkösesti sulla ei syystä tai toisesta ole Mysql-palvelin käynnissä. Eli päivitettyäsi mysql:n on saattanu tulla joku ongelma, joka estää mysql-palvelinta käynnistymästä.
Kokeile vaikka ps -komennolla onko mysqld käynnissä, eli esim:
$ ps -A | grep mysqld
4426 ? 00:00:00 mysqld_safe
4487 ? 00:00:00 mysqld
Jos tuloksena ei ole jotain tommosta, niin sitten se ei ole käynnissä.
Tarkista kaikki ekana tiedosto-oikeudet hakemistoon
/var/run/mysqld/. Tossa hakemistossa pitäs olla tiedosto mysqld.sock. Tarkista, että se on siellä.
Millaset käyttöoikeudet hakemistolle /var/run/mysqld ja tiedostolle /var/run/mysqld/mysqld.sock on? Koeta asettaa /var/run/mysqld lukuoikeus kaikille, ainakin jos sen omistajana on root, niin toi voi auttaa. Eli:
chmod 755 /var/run/mysqld
Ton jälkeen sun pitää koettaa käynnistää Mysql-palvelin.
Kato myös logeista olisko niistä apua. Eli anna komento:
tail /var/log/mysql.log
tail /var/log/mysql.err
Ei tainnut tuo auttaa. Elikkäs yritin seuraavaa:
# chmod 755 /var/run/mysqld
# /etc/init.d/mysql start
* ...
* Starting mysql (/etc/mysql my.cnf) [ ok ]
# mysql -u root -h localhost -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
# chmod 755 /var/run/mysqld/mysqld.sock
chmod: tiedostoa "/var/run/mysqld/mysqld.sock" ei voi käsitellä: Tiedostoa tai hakemistoa ei ole
# ls /var/run/mysqld
(Tyhjää täynnä koko hakemisto.)
# tail /var/log/mysql.log
tail: tiedostoa "/var/log/mysql.log" ei voi avata lukemista varten: Tiedostoa tai hakemistoa ei ole
# tail /var/log/mysql.log
tail: tiedostoa "/var/log/mysql.log" ei voi avata lukemista varten: Tiedostoa tai hakemistoa ei ole
# /etc/init.d/mysql stop
* Stopping mysql ...
/etc/init.d/mysql: line 332: /var/run/mysqld/mysqld.pid: Tiedostoa tai hakemistoa ei ole
* Stopping mysqld (0) [ ok ]
mikä tuossa nyt on?
Näyttää, että sulla on joko mysql:n päivitys menny jotenkin pieleen, tai sitten mysql:n käyttämät polut on jostain syystä väärin.
Eli se mysql-clientti yrittää etsiä tiedostoa mysqld.sock hakemistosta /var/run/mysqld, mutta kuten itse huomasit sitä ei ole siellä.
Katopas millaset polut on /etc/mysql/my.cnf tiedostossa. Mitä ilmeisimmin siellä on tälläset:
[client]
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
Varmista, että client, mysql ja mysql_safe kohdissa on sama polku mysqld.sock tiedostolle.
Voit kokeilla myös etsiä mysqld.sock ja mysqld.pid tiedostoja:
locate mysqld.sock
locate mysqld.pid
Löysikö se ne jostain? Jos löyti, niin voit koettaa korvata noi polut my.conf tiedostossa.
Jos noita ei löydy mistään, niin sitten ei auta kun tehdä ne.
Ehm noi tiedostot /var/run/mysqld hakemistossa on itseaissa ajonaikasia fileitä eli mysql-palvelimen olis itse pitäny ne luoda.
No tarkista kuitenki ne polut my.cnf tiedostossa.
Lisäksi kun kerran /var/log/mysql.log fileitäkään ei ole, niin katso mitä mysql palvelinta käynnistettäessä ja sammutettaessa tulee /var/log/messages logiin. Eli.
tail /var/log/messages
Mikä on MySQL-plvelimen tilanne? Saitko sen toimimaan vai? Ollu vaan hiljasta vähä aikaa :)
Ei toimi tuo mysql-palvelin vieläkään. Kaikki hakemistot ym. on tuolla my.conf:ssa. Logiin jää vaan seurvaavalainen viesti:
Jul 18 13:54:05 crone rc-scripts: ERROR: "mysql" has not yet been started.