PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql startet nach Umzug auf anderen Rechner nicht mehr.



Seiten : [1] 2

meinereinerseiner
15.10.08, 11:34
Hallo,

wollte eine MysqlDB von einem Rechner auf den anderen umziehen.
Beide Server sind identisch in Hardware, OS und Konfiguration.
Auf server 1 die DB beendet und alles von /var/lib/mysql auf den 2. Server an selbige stelle kopiert. Rechte angepasst und versucht zu starten:


[root@webdb2 mysql]# cat /var/log/mysqld.log
081015 11:07:56 mysqld started
081015 11:07:56 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /var/lib/mysql/ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
081015 11:07:56 mysqld ended


das sagt mir als ahnungslosen das die rechte auf die innodb files nicht stimmen, ls sagt aber was anderes:

[root@webdb2 mysql]# ll
insgesamt 2265316
-rw-r----- 1 mysql mysql 2097152000 15. Okt 10:59 ibdata1
-rw-r----- 1 mysql mysql 10485760 15. Okt 10:59 ibdata2
-rw-r----- 1 mysql mysql 104857600 15. Okt 10:59 ib_logfile0
-rw-r----- 1 mysql mysql 104857600 15. Okt 10:59 ib_logfile1
drwx------ 2 mysql mysql 4096 15. Okt 10:59 mysql
drwx------ 2 mysql mysql 4096 15. Okt 10:59 test
drwx------ 3 mysql mysql 4096 15. Okt 11:00 WEB
-rw-r----- 1 mysql mysql 354 15. Okt 10:59 webdb1-slow.log


oder hab ich was übersehen?

tom

marce
15.10.08, 11:46
und wie sehen die Rechte von /var/lib/mysql aus?

meinereinerseiner
15.10.08, 11:51
und wie sehen die Rechte von /var/lib/mysql aus?

in die richtung dachte ich auch schon, aber nix:

[root@webdb2 lib]# ls -al
insgesamt 208
.
.
drwxr-xr-x 5 mysql mysql 4096 15. Okt 11:07 mysql
.
.


tom

marce
15.10.08, 11:52
poste mal die my.cnf bzw. kontrolliere, als welcher User der MySQL-Server gestartet wird / ist.

meinereinerseiner
15.10.08, 11:57
poste mal die my.cnf bzw. kontrolliere, als welcher User der MySQL-Server gestartet wird / ist.

die my.cf ist die selbe wie auf dem anderem system (mit diff geprüft), user id sind identisch.


[root@webdb2 ~]# cat /etc/my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
sync_binlog = 1
binlog_cache_size = 1M
max_binlog_size = 10M
slave_compressed_protocol = 1
delay-key-write = ALL
skip-locking
skip-name-resolve
skip-external-locking
skip-show-database
safe-user-create = 1
#default_table_type = MYISAM
default_table_type = INNODB
transaction_isolation = REPEATABLE-READ
max_allowed_packet = 16M
max_heap_table_size = 64M
tmp_table_size = 64M
key_buffer_size = 384M
sort_buffer_size = 8M
join_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_max_extra_sort_file_size = 1G
myisam_repair_threads = 1
thread_cache_size = 8
table_cache = 512
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 2M
thread_concurrency = 8
local-infile = 0
long_query_time = 3
log_slow_queries
log_long_format
myisam_recover
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
innodb_data_home_dir = /var/lib/mysql
innodb_log_arch_dir = /var/lib/mysql
innodb_log_group_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 2
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 60
max_connections = 500
wait_timeout=68400
interactive_timeout = 68400
server-id=2

old_passwords=1

[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer_size = 4M
write_buffer_size = 4M

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer_size = 4M
write_buffer_size = 4M

[mysqlhotcopy]
interactive-timeout

Hängen die Innodb Files irgendwie vielleicht an den Inodes??

tom

marce
15.10.08, 12:03
das einzige was mir direkt auffällt - bei mir hier haben die InnoDBs rw-rw----

meinereinerseiner
15.10.08, 12:19
das einzige was mir direkt auffällt - bei mir hier haben die InnoDBs rw-rw----

naja, selbst ein rwxrwxrwx bringt nix!

tom

marce
15.10.08, 12:22
Alterntative Idee (da mir momentan nichts weiter auffällt).

Stopp mal die MySQL (ok, läuft ja eh nicht), lösche den Inhalt des /var/lib/mysql-VZ, starte dann die MySQL und schau, ob er die default-Tabellen anlegt.

Wenn ja - dann beenden und dann noch mal die Daten drüber kopieren, evtl. fehlt im woanders irgendwas.

Weitere Alternative: mysqldump auf dem orig. System und Import auf dem neuen.

meinereinerseiner
15.10.08, 12:25
hab ich schon gemacht, er legt dann die Db files an und ich kanns per dump einspielen, das war aber nicht das was ich wollte. Verstehe halt diese blöde fehlermeldung nicht.

tom

marce
15.10.08, 12:27
irgendwelche ACLs oder Dinge wie AppArmor / SELinux?

meinereinerseiner
15.10.08, 12:29
irgendwelche ACLs oder Dinge wie AppArmor / SELinux?

nein, nix - 2 völlig identische kisten, abgesehen von namen und IP - ich werd noch wahnsinning. :)

tom

marce
15.10.08, 12:31
/var/lib/mysql auf den 2. Server an selbige stelle kopiert. Rechte angepasst und versucht zu starten:
ok, wie genau kopiert?
wie genau die Rechte angepasst?

meinereinerseiner
15.10.08, 12:34
ok, wie genau kopiert?
wie genau die Rechte angepasst?

auf dem zielrechner, die instalierte leere DB angehalten, und ein
mv /var/lib/mysql /var/lib/mysql_org

auf dem quellserver: mysql angehalten und ein:
scp -r /var/lib/mysql zielserver:/var/lib/

dann wiederum auf dem zielserver ein:
chown -R mysql:mysql /var/lib/mysql

fertig.

tom

marce
15.10.08, 12:37
schon mal versucht, ein tar.gz zu erstellen und das zu kopieren? Oder mal scp -pr statt nur -p?

*hmpf* das sind die einzigen Unterschiede zu der Vorgehensweise, die hier eigentlich problemlos funktioniert...

meinereinerseiner
15.10.08, 12:39
schon mal versucht, ein tar.gz zu erstellen und das zu kopieren? Oder mal scp -pr statt nur -p?

*hmpf* das sind die einzigen Unterschiede zu der Vorgehensweise, die hier eigentlich problemlos funktioniert...

es kommt noch besser, hab da noch was rausgefunden:

wenn ich die orginalinstallation, die ich vorher mit
[root@webdb2 lib]# mv mysql mysql_org
gesichert habe an die alte Stelle zurück KOPIERE, dann geht das auch nicht:

[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# cp -r mysql_org mysql
[root@webdb2 lib]# chown -R mysql:mysql /var/lib/mysql
[root@webdb2 lib]# /etc/init.d/mysqld start
Timeout error occurred trying to start MySQL Daemon.
MySQL starten: [FEHLGESCHLAGEN]


ich muss das Verzeichnis echt MOVEN, erst dann klappts:

[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# mv mysql_org mysql
root@webdb2 lib]# /etc/init.d/mysqld start
MySQL starten: [ OK ]


was is das für ein mist, hängt die InnoDB doch an den Inodes irgendwie?!


tom

marce
15.10.08, 12:41
sollte eigentlich nicht - das klingt nach irgendeinem internen Rechteproblem, welches so auf den ersten Blick nicht direkt ersichtlich ist.

teste mal mit dem tar.gz...

meinereinerseiner
15.10.08, 12:50
teste mal mit dem tar.gz...

habe ich grad versucht, aber .... einfach ohne worte:


[root@webdb2 lib]# /etc/init.d/mysqld stop
MySQL beenden: [ OK ]
[root@webdb2 lib]# tar cvfzp /var/lib/mysql.tgz mysql
.
.
.
.
[root@webdb2 lib]# mv mysql mysql_org
[root@webdb2 lib]# ls -al mysql.tgz
-rw-r--r-- 1 root root 148209390 15. Okt 12:44 mysql.tgz
[root@webdb2 lib]# tar xvfz /var/lib/mysql.tgz
.
.
.
.

[root@webdb2 lib]# cd mysql
[root@webdb2 mysql]# ls -al
insgesamt 2265332
drwxr-xr-x 5 mysql mysql 4096 15. Okt 12:42 .
drwxr-xr-x 24 root root 4096 15. Okt 12:45 ..
-rw-rw---- 1 mysql mysql 2097152000 15. Okt 12:42 ibdata1
-rw-rw---- 1 mysql mysql 10485760 15. Okt 12:42 ibdata2
-rw-rw---- 1 mysql mysql 104857600 15. Okt 12:42 ib_logfile0
-rw-rw---- 1 mysql mysql 104857600 15. Okt 10:31 ib_logfile1
drwx------ 2 mysql mysql 4096 1. Okt 11:25 mysql
drwx------ 2 mysql mysql 4096 1. Okt 11:25 test
drwx------ 3 mysql mysql 4096 8. Okt 10:34 WEB
-rw-rw---- 1 mysql mysql 354 1. Okt 11:25 webdb2-slow.log
[root@webdb2 mysql]# cd -
/var/lib
[root@webdb2 lib]# /etc/init.d/mysqld start
Timeout error occurred trying to start MySQL Daemon.
MySQL starten: [FEHLGESCHLAGEN]
[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# mv mysql_org mysql
[root@webdb2 lib]# /etc/init.d/mysqld start
MySQL starten: [ OK ]

marce
15.10.08, 12:57
was ist das denn für eine Maschine mit welchen Versionen?

Irgendwas scheint da madig zu sein - wie gesagt, hier geht's problemlos.

meinereinerseiner
15.10.08, 13:05
was ist das denn für eine Maschine mit welchen Versionen?

Irgendwas scheint da madig zu sein - wie gesagt, hier geht's problemlos.

beide büchsen:

CentOS release 5.2 (Final)
Quadcore Intel(R) Xeon(R) CPU X3360 @ 2.83GHz
8GB Ram
gleicher Patchlevel etc. und wurden via script aufgesetzt.

tom

marce
15.10.08, 13:15
Hier ebenso CentOS 5.2, auch XEON-CPUs bzw. auch PIII - also auch 32 bzw. 64-Bit-Systeme.

Überall problemlos.

-> Herzlichen Glückwunsch. :-)

meinereinerseiner
15.10.08, 13:37
Überall problemlos.


ausser bei mir, was ein mist!

fubar
15.10.08, 13:48
ist die Fehlermeldung im Log immernoch die gleiche(permissions)?

meinereinerseiner
15.10.08, 13:50
ist die Fehlermeldung im Log immernoch die gleiche(permissions)?

ja, meldung bleibt bei:

081015 12:34:35 mysqld started
081015 12:34:35 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /var/lib/mysql/ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
081015 12:34:36 mysqld ended

tom

foolish
15.10.08, 14:14
hi ,

rein interessehalber ;


[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# cp -r mysql_org mysql
[root@webdb2 lib]# chown -R mysql:mysql /var/lib/mysql
[root@webdb2 lib]# /etc/init.d/mysqld start

wenn du ein cp -rp mysql_org mysql versuchst , dann dasselbe ?

fubar
15.10.08, 14:24
also ich habe mir nochmal Deine my.cnf angschaut.

Wo gibst Du denn da an unter welchem User mySQL laufen soll(user=mysql)?


gruesse

meinereinerseiner
15.10.08, 14:39
also ich habe mir nochmal Deine my.cnf angschaut.
Wo gibst Du denn da an unter welchem User mySQL laufen soll(user=mysql)?
gruesse

scheint nicht notwendig zu sein, bzw. er nimmt die default namen.
mit dem Orginal verzeichnis läufts ja.

tom

meinereinerseiner
15.10.08, 14:40
wenn du ein cp -rp mysql_org mysql versuchst , dann dasselbe ?

cp -rp bringt keinen erfolg.

tom

fubar
15.10.08, 14:46
es kommt noch besser, hab da noch was rausgefunden:

wenn ich die orginalinstallation, die ich vorher mit
[root@webdb2 lib]# mv mysql mysql_org
gesichert habe an die alte Stelle zurück KOPIERE, dann geht das auch nicht:

[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# cp -r mysql_org mysql
[root@webdb2 lib]# chown -R mysql:mysql /var/lib/mysql
[root@webdb2 lib]# /etc/init.d/mysqld start
Timeout error occurred trying to start MySQL Daemon.
MySQL starten: [FEHLGESCHLAGEN]


ich muss das Verzeichnis echt MOVEN, erst dann klappts:

[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# mv mysql_org mysql
root@webdb2 lib]# /etc/init.d/mysqld start
MySQL starten: [ OK ]


was is das für ein mist, hängt die InnoDB doch an den Inodes irgendwie?!


tom

Das gibt mir irgndwie noch zu denken... mv geht, cp aber nicht. Wenn das nicht auf beiden Stationen auftreten wuerde, wuerde ich sagen Dein RAM ist kaputt oder so...

cp-rp hast Du schon probiert, sagst Du.


scheint nicht notwendig zu sein, bzw. er nimmt die default namen.
mit dem Orginal verzeichnis läufts ja.

tom

scheint das nur so oder hast Du es ausprobiert? Mir gehen leider die Ideen aus.

meinereinerseiner
15.10.08, 14:59
Mir gehen leider die Ideen aus.
mir auch. :)

cp -rp:

[root@webdb2 etc]# /etc/init.d/mysqld stop
MySQL beenden: [ OK ]
[root@webdb2 etc]# cd /var/lib/
[root@webdb2 lib]# mv mysql mysql_org
[root@webdb2 lib]# cp -rp mysql_org mysql
--> rechte stimmen
[root@webdb2 lib]# /etc/init.d/mysqld start
Timeout error occurred trying to start MySQL Daemon.
MySQL starten: [FEHLGESCHLAGEN]
[root@webdb2 lib]# rm -rf mysql
[root@webdb2 lib]# mv mysql_org mysql
[root@webdb2 lib]# /etc/init.d/mysqld start
MySQL starten: [ OK ]


user und gruppe ist mysql - wie gesagt, es geht ja mit dem orginal verzeichnis, welches die gleichen zugriffsrechte hat. was soll da ein usereintrag in der my.cf bringen.Aber auch das habe ich probiert, nur ums auszuschliessen, aber das brachte auch nix.

tom

meinereinerseiner
16.10.08, 11:12
So, auch auf die Gefahr hin, das ich gesteinigt, geteert und gefedert werde - hier die Lösung:

Schuld an allem war das von mir nicht beachtetet selinux. Deaktiviert und alles klappt.

Nun muss ich mal sehen, warum ich nix im messages gesehen hab, das selinux müsste ja irgendwo seinen Protest dokumentiert haben.

Also nix für ungut und danke an alle die helfen wollten ... manchmal reicht auch einfach ne Mütze Schlaf um auf neue Gedanken zu kommen.

tom