Üdv!
Egy Apache webszervert próbáltam felállítani az Arch Linux rendszeremen, a disztribúció Wiki leírása (http://wiki.archlinux.org/index.php/LAMP) alapján. Az Apache és a PHP része teljesen rendben van, a MySQL-t azonban nem tudom működésre bírni, első alkalommal elindítva a szolgáltatást (/etc/rc.d/mysqld start) ezt a hibaüzenetet kapom:
Installing MySQL system tables...
ERROR: 1062 Duplicate entry 'localhost-' for key 1
080116 8:53:49 [ERROR] Aborting
080116 8:53:49 [Note] /usr/sbin/mysqld: Shutdown complete
Installation of system tables failed!
Ellenőriztem, hogy elindul-e egyáltalán: a feladatkezelőben (Htop) látható, a
pgrep mysql
parancsra kiírja a folyamat(ok) azonosítószámát, ezekután a biztonság kedvéért újraindítottam (/etc/rc.d/mysqld restart), ekkor már gond nélkül elindult, hibaüzenetek nélkül.
Még sohasem telepítettem ezelőtt MySQL-t és teljesen kezdő vagyok, de a leírásokból az derült ki, hogy ezután egyszerűen
mysql -u root
parancssal be tudok jelentkezni MySQL szerverre, vagy meg tudom adni a root@localhost felhasználó jelszavát a
mysqladmin -u root password JELSZÓ
paranccsal.
Azonban:
1. mysql -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
2. mysqladmin -u root password JELSZÓ
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
Így próbáltam megoldani a problémát:
1. Root felvétele a mysql csoportba
Mivel a telepítő korábban létrehozott egy 'mysql' nevű csoportot és egy 'mysql' nevű felhasználót megpróbáltam 'mysql' felhasználóval belépni, de nem sikerült, felvettem a 'root' felhasználót a 'mysql' csoportba (
usermod -aG mysql root
), a 'mysql' felhasználót a 'mysql' csoportba, ezek után sem sikerült belépni.
2. /etc/my.cnf, /etc/hosts, /etc/hosts.allow /rc.conf szerkesztése. Hálózati beállítások
A /etc/my.cnf fájlhoz hozzá adtam a skip-innodb sort, a [mysqld] szekcióban.
A /etc/hosts-ban beállítottam a localhost-ot (127.0.0.1 localhost.localdomain localhost), saját hostnévvel is megpróbálkoztam (bár nem nagyon vagyok vele tisztában ezeknek mi pontos szerepe)
A /etc/host.allow-ban engedélyeztem a mysqld-t (mysqld : ALL : ALLOW)
/etc/rc.conf fájlba mysqld daemon-ként való felvétele, hogy bootoláskor induljon.
/etc/rc.conf-ban a dhcdbd és networkmanager daemon-ok helyett visszaírtam a gyári network daemon-t, hátha ez a probléma.
Ezek után sem sikerült belépni.
4. SAFE MODE/Recover MySQL root password
Találtam egy leírást arról, hogyan lehet visszaállítani a root jelszavunkat ha elvesztettük. Így indítottam a MySQL szervert:
/usr/bin/mysqld_safe --user=root --pid-file=/var/run/mysqld.pid --skip-grant-tables &
Majd:
mysql -u root mysql
. Végre sikerült belépni a szerverre, és másodjára úgy tűnik jelszót is sikerül beállítani.
set password for 'root'@'localhost' = PASSWORD('JELSZÓ');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
update user set password=password('JELSZÓ') where User='root' and host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
flush privileges;
Query OK, 0 rows affected (0.00 sec)
Újraindítom a MySQL-t (/etc/rc.d/mysqld restart), megpróbálok belépni (mysql -u root -p) és
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Összegzés: Tudom, hogy kezdő vagyok, de a leírások alapján ennek nem kellene ennyire nehéznek lennie*, így arra gyanakszom, hogy ez valami Arch Linux specifikus probléma lehet, vagy a rendszerrel, vagy a mysql csomaggal kapcsolatban, ezt az Arch Linux fórumán olvasott dolgok is megerősítik (http://bbs.archlinux.org/viewtopic.php?id=42309). A bug jelentések (http://bugs.archlinux.org/) között viszont nem találtam semmit, ami erre vonatkozna, korábban már fordultak elő hasonló dolgok, legutóbb pl. a /tmp mappa jogosultság beállításával voltak gondok, emiatt telepítést követően nem lehetett userrel bejelentkezni (én meg a EXT2 /boot JFS root ReiserFS /home XFS /home/media fájlrendszer összetétel okozta gondra gyanakodtam :)), de azokat 1-2 óra alatt sikerült megoldani. Mindenesetre a mysql-re szükségem van, Wordpress-t akarok beüzemelni, és gyakorolni, tesztelni, meg ismerkedni az SQL-el. Ettől függetlenül az Arch Linux is marad, a másik partíción van Ubuntu Linux-om, de az Arch jobb tanulni, ismerkedni (meg sokkal gyorsabb, +i686, +csomagépítő rendszer/közösség)
*A MySQL konfigurálásával kapcsolatos oldalakat nézve, pl. http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch34_:_… vagy http://www.gentoo.org/doc/en/mysql-howto.xml
Ha valakinek van valami ötlete, vagy javaslata azt szívesen veszem.
Update: SIKER. A hostname átírása, majd a mysql újratelepítése segített a problémán, ezután a mysql_install_db rendben lefutott és a mysql szerver elindul, be is lehet lépni.
Kösz mindenkinek a javaslatokat. Nem tudom, hogy ez most egy bug, vagy valami feature, hogy át kell írni a hostname-et, de mindenesetre át kell.
/etc/rc.conf
HOSTNAME="myhost"
/etc/host
#ip-address hostname.domain.org hostname
127.0.0.1 localhost.localdomain localhost myhost