MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
Hallo ihr,
ein Programm generiert für mich in unregelmäßigen Abständen Datensätze eine bestehende MySQL-Datenbank.
Die erzeugten Daten (eine MYD und eine MYI Datei) kopiere ich per Skript in das MySQL-Data Verzeichnis des Webservers (mysql/data/DB-Name).
Wenn ich nun die entsprechende PHP-Seite aufrufe um mir die Änderungen der Zwischenzeit anzeigen zu lassen, funktioniert das nicht, warum ?
Erst nach einem Neustart des MySQL-Servers werden die Änderungen dargestellt.
Ich hatte bereits vorher schonmal versucht gehabt alle notwendigen Verzeichnisse in der my.cnf Datei auf das Verzeichnis des Programms zu ändern in dem die eigentliche Datenbank generiert wird (dies würde mir diese Umherkopiererei ersparen) leider funktioniert dies aber auch nicht, sodass MySQL mir weiterhin nur die DBs des Webservers anzeigt.
Gibt es vielleicht für das erste oder zweite Problem einen sinnvollen Ansatz ?
Ich kann von dem Programm aus leider keine direkten Injections in die Webserver-DB machen.
LG
//edit: Nochmal ganz billig als Grafik nachgemalt, damit das was ich meine in etwa klar wird.
AW: MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
Hi,
das ist immer schlecht wenn mehrere Programme auf die DB gleichzeitig zugreifen. Also damit meine ich auf das File direkt und nicht auf den DB-Service. Daher geht das nicht.
Auch wenn du schreibst, dass du mit dem Programm keine direkten Anfragen an den DB-Server stellen kannst, wird dies trotzdem der einzige, vernünftige Weg sein. Aber wieso sollte das nicht gehen? Denke da finden wir bestimmt eine Lösung dafür.
AW: MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
dann wäre die idee, ob du dir nicht ein Programm schreibst, welches den DB-Service stoppt, die Datei kopiert und den DB-Service wieder startet. Das ist ein einfaches Shellscript. ausgeführt per Cronjob sollte das doch für den Anfang auch recht effektiv sein oder?
AW: MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
Prinzipiell würde es ja reichen wenn ich das batchfile ausführe, das im Hintergrund zum Starten/Beenden des Dienstes verwendet wird.
Zitat:
@echo off
echo Diese Eingabeforderung nicht waehrend des Running beenden
echo Please dont close Window while MySQL is running
echo MySQL is trying to start
echo Please wait ...
echo MySQL is starting with mysql\bin\my.cnf (console)
:error
echo.
echo MySQL konnte nicht gestartet werden
echo MySQL could not be started
pause
:finish
Bin grad am überlegen wie man das am geschicktesten anstellt, da sich "Geplante Tasks" dafür nur bedingt eignet.
Muss mal googeln obs ein Tool gibt, was in X Zeitintervallen ein Programm aufrufen kann, ähnlich dem Kopierscript.
AW: MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
gibts bestimmt, aber wenn du fit bist, dann schreib dir doch eins mit C(++ oder #).. dienst stoppen, file kopieren, dienst starten. Die Dienste kannste sogar per Net-Befehl ansteuern in deiner Batch. Und Copy sollte ja auch kein Thema sein. In dein C Programm einfach zu bestimmten Uhrzeiten dann die Funktion ausführen, in batch könntest mit sleep() einfach ne Stunde warten, aber das ist dann schon eher Pfusch ..
AW: MYD/MYI-Files kopieren - Aktualisierung nicht sichtbar
Wenn C# sexy ist, möchte ich nicht wissen, was du erst zu meiner Freundin sagt *hrhr*
Aber erstmal danke. Ich werde mal schauen ob ich die SQL-Statements des Programs vielleicht entsprechend umgebogen bekomme, wäre ja auch noch ne Möglichkeit.
//edit: Welche Stellen der my.cnf muss ich denn noch bearbeiten, dass meine Datenbanken generell im Programmverzeichnis erwartet werden, dann tu ich mir den ganzen Stress mit DIenst starten/beenden nämlich am Besten gar nicht erst an ?
Gibt es noch andere Files die evt. angepasst werden müssten ?
Entsprechende Stellen sind mit E:/MEINPROGRAMM/db/data gekennzeichnet
Zitat:
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# You can copy this file to
# D:/xampp/mysql/bin/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is D:/xampp/mysql/data) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
# password = your_password
port = 3306
socket = mysql
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
basedir="E:/MEINPROGRAMM/db"
tmpdir="D:/xampp/tmp"
datadir="E:/MEINPROGRAMM/db/data"
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
#server-id = 1
# Uncomment the following if you want to log updates
#log-bin=D:/xampp/mysql/data/mysql-bin
# Uncomment the following if you are NOT using BDB tables
skip-bdb
skip-innodb
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = E:/MEINPROGRAMM/db/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = E:/MEINPROGRAMM/db/data
#innodb_log_arch_dir = E:/MEINPROGRAMM/db/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates