Insomiaa
8.09.2010, 13:01:28
Witam,
Stworzyłem stronkę wyświetlającą dane z bazy MySql... Chciałbym aby pobierała ona interesujące mniee dane z bazy MSSQL (np raz dziennie).
Nie bardzo wiem jak to zrobić..
Widziałem, że są programy umożliwiające konwersje z jednej bazy do drugiej, ale czy jakiś robi to automatycznie nadpisując starą bazę?
Pozdrawiam,
I
wookieb
8.09.2010, 13:03:07
mysql nie ma takiej możliwości. Wykorzystaj po prostu skrypt php
Insomiaa
8.09.2010, 13:18:50
a mógł byś podać jakieś linki gdzie można o tym poczytać/znaleźć coś gotowego do przerobienia?
IceManSpy
8.09.2010, 13:54:24
Możesz to zrobić na zasadzie insert , delete , update i select jeśli chodzi o brazy, oraz ustawić CRONa. Wtedy piszesz sobie jakiś skrypt w PHP, a w CRONie ustawiasz, aby o jakiejś tam porze był ten skrypt wywoływany. Tylko uważaj, bo jeśli będzie za długo trwał to serwer go przerwie! Albo ustaw w opcja na dłuższe działanie skryptu.
Insomiaa
8.09.2010, 18:50:24
jakiś tutorial/trochę kodu macie...?
bo ja nadal do końca nie wiem jak to przenosić...
prachwal
9.09.2010, 16:11:22
najszybsza metoda jest do zrobienia ale pod windosem
robisz eksport danych za pomocą BCP.exe do pliku, przesyłasz taki plik FTP-em na maszynę z MySQL-em, a następnie ładujesz dane LOAD DATA - działa naprawdę szybko
skrypty PHP przy dużej ilości danych działają makabrycznie wolno
Insomiaa
9.09.2010, 18:20:13
to jest raptem 200wierszy po 15 kolumn... dane mają się odświeżać codziennie o konkretnej godzinie...
zastanawiałem się, czy nie da się tego w jobs'ach mssql'a zrobić?
vokiel
9.09.2010, 18:35:26
O ile dobrze pamiętam, to z poziomu bay MSSQL można ustawić replikację, nawet do bazy MySQL'a. Replikacja ma to do siebie, że działa automatycznie, sama w momencie wystąpienia zmian.
prachwal
9.09.2010, 18:36:36
da się
robisz insert into do tabeli na linked serwerze po odbc - całość w T-SQL-u
linked serwer po ODBC do MySQL-a
Insomiaa
9.09.2010, 19:17:30
jak to zrobić

?
gdzie ta opcja jest i we wszystkich wersjach ms sql?
prachwal
9.09.2010, 19:28:54
EXEC master.dbo.sp_addlinkedserver
@server = N'MYSQL',
@srvproduct=N'MySQL',
@provider=N'MSDASQL',
@provstr=N'Driver=MySQL ODBC 5.1 Driver;SERVER=localhost;UID=root;PWD=xxxx;DATABASE=test;PORT=3306;CHARSET=utf8'
-- importowanie danych do testu, bo potrzebuję tabelki na wzór
SELECT *
INTO tab_import
FROM openquery (MYSQL,'select * from test.tab_import') AS r
-- załadowanie danych do tabeli na maszynie z MySQL
INSERT INTO openquery (MYSQL,'select * from test.tab_import where 1 = 0')
(O1, L1, O2, L2, O3, L3, O4, L4, O5, L5)
SELECT O1, L1, O2, L2, O3, L3, O4, L4, O5, L5
FROM tab_import AS tab_import_1
Insomiaa
11.09.2010, 16:16:13
sorry zadam jeszcze głupie pytanie i gdzie ja to mam dodać? bo z ms sqla jestem słaby
to co Ty napisałeś to przeniesienie mysql do mssql
prachwal
11.09.2010, 16:17:07
w zasadzie działa w obie strony, tyle że z poziomu MSSQL-a
Insomiaa
15.09.2010, 13:53:46
okazało się to dość proste, teraz mam kolejny problem
z managment mssql chce wysłać hasło shashowane:
insert into [dane tabeli mysql] values(uzytkownik, HashBytes('SHA1', 'haslo'), id);
HashBytes to odpowiednik sha1()... ale niestety w mysql hasła wyglądają dziwnie...
Jak to pokonać? Jak z Mssql'a utworzyć w mysql zakodowane hasło... moze innego kodowania użyć np md5?
prachwal
15.09.2010, 13:56:50
musisz przekonwertować wynik funkcji HashBytes do tekstu, standardowo dane są binarne
przykład
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.