PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL bekommt nicht die nötigen Rechte



arudil
05.03.07, 11:49
Servus,
ich habe hier eine merkwürdige Situation. Ich nutze openSuSE 10.2 (das war noch nicht das merkwürdige.. ja - Sparwitz) und MySQL. Das "datadir" habe ich in der my.cnf auf eine andere Partition umgebogen: "/mnt/daten/mysql"
Dort liegen MySQLs Datenbanken, Besitzer:Gruppe ist mysql:mysql

Wenn ich nun allerdings MySQL starte:


strace -f -o mysql_mysql.txt mysqld --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/mnt/daten/mysql

bekomme ich lediglich eine Fehlermeldung:

070305 12:19:46 [ERROR] Fatal error: Can't open and lock privilege tables: Tabelle 'host' ist nur lesbar

Strace sagt mir im Nachhinein folgendes:

lstat64("/mnt/daten/mysql/mysql", 0xbfe4ea88) = -1 EACCES (Permission denied)
open("/mnt/daten/mysql/mysql/host.MYI", O_RDWR|O_LARGEFILE) = -1 EACCES (Permission denied)


mit --user=root läuft das ganze allerdings problemlos. Wenn ich AppArmor bereits unschädlich gemacht hätte, würde ich diesen vermuten.

Wenn ich das datadir auf /var/lib/mysql beließe, geht es allerdings.

Ich bin mit meinem Latin am Ende - vielleicht kann hier jemand helfen :-)

temir
05.03.07, 12:17
Poste mal die Ausgabe von `ls -laR /mnt/daten/mysql`.

arudil
05.03.07, 14:50
Achtung, Output ;-):



# ls -alR
.:
insgesamt 20548
drwxrwxrwx 6 mysql mysql 4096 2007-03-05 12:51 .
drwxr-xr-x 9 arudil users 4096 2007-03-05 12:11 ..
-rw-rw---- 1 mysql mysql 10485760 2007-03-05 13:01 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2007-03-05 13:01 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2007-03-05 12:14 ib_logfile1
drwxrwxrwx 2 mysql mysql 4096 1970-01-01 01:00 mysql
-rwxrwxrwx 1 mysql mysql 277 2004-06-01 00:22 mysqld.log
drwxrwxrwx 2 mysql mysql 4096 1970-01-01 01:00 test

./mysql:
insgesamt 116
drwxrwxrwx 2 mysql mysql 4096 1970-01-01 01:00 .
drwxrwxrwx 6 mysql mysql 4096 2007-03-05 12:51 ..
-rwxrwxrwx 1 mysql mysql 8778 2004-06-01 00:00 columns_priv.frm
-rwxrwxrwx 1 mysql mysql 0 2004-05-31 23:00 columns_priv.MYD
-rwxrwxrwx 1 mysql mysql 1024 2004-05-31 23:00 columns_priv.MYI
-rwxrwxrwx 1 mysql mysql 9088 2004-06-01 00:00 db.frm
-rwxrwxrwx 1 mysql mysql 1530 2006-10-29 12:57 db.MYD
-rwxrwxrwx 1 mysql mysql 3072 2006-11-11 09:25 db.MYI
-rwxrwxrwx 1 mysql mysql 8641 2004-06-01 00:00 func.frm
-rwxrwxrwx 1 mysql mysql 0 2004-05-31 23:00 func.MYD
-rwxrwxrwx 1 mysql mysql 1024 2004-05-31 23:00 func.MYI
-rwxrwxrwx 1 mysql mysql 9064 2004-06-01 00:00 host.frm
-rwxrwxrwx 1 mysql mysql 0 2004-05-31 23:00 host.MYD
-rwxrwxrwx 1 mysql mysql 1024 2004-05-31 23:00 host.MYI
-rwxrwxrwx 1 mysql mysql 8877 2004-06-01 00:00 tables_priv.frm
-rwxrwxrwx 1 mysql mysql 1425 2006-10-29 12:57 tables_priv.MYD
-rwxrwxrwx 1 mysql mysql 3072 2006-10-29 12:57 tables_priv.MYI
-rwxrwxrwx 1 mysql mysql 9806 2004-06-01 00:00 user.frm
-rwxrwxrwx 1 mysql mysql 580 2006-10-29 09:52 user.MYD
-rwxrwxrwx 1 mysql mysql 2048 2006-10-29 12:57 user.MYI

./test:
insgesamt 8
drwxrwxrwx 2 mysql mysql 4096 1970-01-01 01:00 .
drwxrwxrwx 6 mysql mysql 4096 2007-03-05 12:51 ..


Also unglaublich freizügige Rechte - aber keine Chance. Das Verhalten stinkt eigentlich nach AppArmor - aber der ist ja abgeschalten...

temir
05.03.07, 16:06
Da habe ich die /etc/my.cnf in Verdacht. Hast du in dieser auch die DATADIR geändert?
(bzw. extra angegeben, ohne Angabe = default, bei suse /var/lib/mysql)

arudil
05.03.07, 16:38
Hast du in dieser auch die DATADIR geändert?
ja, datadir ist auch in der my.cnf eingestellt ;)

temir
06.03.07, 16:00
Hm, jetzt stehe ich ehrlich gesagt leicht auf dem Schlauch...
Hatte selber schon mehrmals die DATADIR umgebogen, allerdings die ganze Palette, angefangen bei /etc/init.d/mysql bis /usr/bin/mysqld_safe oder wie auch der Script geheissen hat. Der Sinn war, den mitgelieferten init-Script weiterhin zu verwenden. Bei dir hilft es nichts anderes, wie am ersten Kettenglied anzufangen und jeweils einen Schritt weiter zu prüfen.