![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2019 Ostrzeżenie: (0%) ![]() ![]() |
Witam, moj opiekun (domena, server, obsluga itp.) wyemigrowal na zachod i przegapilem oplate domeny, ktora przepadla. Teraz zakupilem nowa i musze zmienic dane w bazie danych z DOMENA1.pl na DOMENA2.pl we wszystkich miejscach gdzie taki zapis wytepuje. Stad pytanie jak powinna wygladac komenda, ktora to zmienia (jest to najprostsza baza msql ~200MB)? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Wyeksportuj zrzut, zmień edytorem, zaimportuj zrzut.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 872 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Jak masz dostęp do PHPMYADMIN to jest tam opcja SZUKAJ PO WSZYSTKICH TABELACH.
Prawdopodobnie stara nazwa domeny jest tylko w konkretnych tabelach i kolumnach więc wtedy można wykorzystać zapytanie SQL:
Zrób wcześniej kopię zapasową tabeli!! Ten post edytował Tomplus 2.04.2019, 07:13:13 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2019 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za zainteresowanie - mam dostep do phpmyadmin! Chcialbym przeleciec przez wszystkie tabele w bazie (cala baza - dla pewnosci). Jest na to jakas komenda? Rozumiem, ze ze wzgledu ze bedzie to dlugo trwac musze zmienic ustawienia mysqla aby pozwalal dluzej mielic baze itp. tak?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tyle możliwości a to tylko 1-szy wynik z googla https://stackoverflow.com/questions/1183906...g-a-mysql-query
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2019 Ostrzeżenie: (0%) ![]() ![]() |
Chce z autoamtu przejechac po wszystkich tabelach/kolumnach a nie recznie to wpisywac.
Wyciagnalem baze jako txt jak radzono (@trueblue - klik na EXPORT i wybralem select 'Texy! text' jako format) i przejechalem automatem, ale jak to teraz wgrac? Nie moge jej wrzucic (wgrac) z powrotem. EDIT: Przy eksporcie jako sql i podmianie nazwy XXX na YYY za pomoca tekstowego edytora wystepuja bledy... Nie za bardzo wiem czemu - wydaje mi sie ze relacja pomiedzy tabelami/kolumnami jest zachowana - w koncu zmieniam tylko nazwe i ta nazwe zmieniam wszedzie, wiec korelacja powinna byc zachowana... Ktos ma jakies pomysly? Sa jakies komendy mysql co mi przeleca automatycznie po wszystkich tabelach i zamienia nazwe? Moze zamiana przez mysql zamiast przez edytor tekstowy w czyms pomoze (chodz wydaje sie to nielogiczne ale nie znam sie na bazach danych). Ten post edytował spamator12 28.04.2019, 04:00:59 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przy eksporcie jako sql i podmianie nazwy XXX na YYY za pomoca tekstowego edytora wystepuja bledy... Przy eksporcie czy imporcie? Jakie błędy? Ktos ma jakies pomysly? Sa jakies komendy mysql co mi przeleca automatycznie po wszystkich tabelach i zamienia nazwe? Moze zamiana przez mysql zamiast przez edytor tekstowy w czyms pomoze (chodz wydaje sie to nielogiczne ale nie znam sie na bazach danych). Pyton_000 podał Ci najbliższe rozwiązanie powyżej. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2019 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw eksportuje stara baze, nastepnie zmaieniam nazwy przez edytor tekstowy (replace XXX to YYY) i nastepnie wgrywam baze. Ale to nie dziala - najprawdopodobniej wystepuje gdzies jakas korelacja - w sensie AAA jest kojarzone z XXX i po zmaianie XXX na YYY wystepuje problem - chodz na chlopski rozumn nie powinien.
Zadnych bledow przy eksporcie i imporcie. Bledy pojawiaja sie jak odpalam strone (wyczyscielem wszystkie tabele, ktore mozna bylo wyczyscic - np cache). Przykladowy blad - "Notice: unserialize(): Error at offset 2080 of 3676 bytes in views_db_object->load_row() (line 2307 of..." Pomyslalem, ze jak zrobie to przez komendy sql - to moze one sa dokladniejsze albo wprowadzaja jakies dodatkowe modyfikacje i baza zadziala. A w tym linku co podal @Pyton_000 - "If you want to edit from all tables, best way is to take the dump and then find/replace and upload it back." no wiec tak zrobilem. Jest jakas komenda co zmienia WSZYSTKIE tabele w bazie mysql poprzez phpmyadmin? Nie chcialbym wklepywac komend dla wszystkich tabel (wklepywac ich nazw, wyszukiwac po kilka rekordow w kazdej tabeli). Znacie na to jakis sposob? EDIT: Z ciekawosci przeszukalem baze przez phpmyadmin na fraze XXX i znalazl tego duzo. Jednak gdy chce edytowac zawartosc pol, to nie ma tam w polach mozliwosci edycji nazwy XXX (XXX tam nie wystepuje) - moze fraza XXX jest w jakis sposob zakodowana w innej nazwie/postaci i dlatego edytor tego nie zamienil na YYY. Czyli jezeli XXX w bazie w czesci pol jest zakodowany jako a1a1a1 to edycja poprzez edytor nic nie poradzi, bo trzeba za pomoca tego klucza przekonwertowac YYY na odpowiednik b2b2b2 i wtedy zamienic a1a1a1 na b2b2b2. Ale moze zamiana przez phpmyadmin od razu zrobi to automatycznie - tylko jak zamienic zadana fraze od razu w wszystkich tabelach i kolumnach w danej bazie? Ten post edytował spamator12 28.04.2019, 13:17:35 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przykladowy blad - "Notice: unserialize(): Error at offset 2080 of 3676 bytes in views_db_object->load_row() (line 2307 of..." Wartości, które zmieniasz są elementem zseralizowanych struktur. Nie wystarczy zmiana samej wartości. Poszukaj wartości w takim stringu i zmienić oprócz niej samej, jej długość. Najpewniej to string w postaci, np.: s:4:"abcd". Tak więc oprócz samego łańcucha "abcd" musisz zmienić również wartość 4 na odpowiadającą długości nowego łańcucha. Po takiej zmianie możesz podmieniać zwykłe wystąpienia (niezserializowane). Jest jakas komenda co zmienia WSZYSTKIE tabele w bazie mysql poprzez phpmyadmin?[/b] Nie chcialbym wklepywac komend dla wszystkich tabel (wklepywac ich nazw, wyszukiwac po kilka rekordow w kazdej tabeli). Znacie na to jakis sposob? Są tam też inne rozwiązania. -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.04.2019 Ostrzeżenie: (0%) ![]() ![]() |
Inne rozwiazanie mi nie dzialaja (php 7.3.4).
s:dlugosc stringa:\"nazwa stringa" (oryginal) w bazie nie wystepuje. Wiec nie moge tego zamienic na odpowiednia dlugosc nowego stringa - juz probowalem. blad "Notice: unserialize(): Error at offset 2080 of 3676 bytes in views_db_object->load_row() (line 2307 of..." z tego co widze w bazie kieruje do ('views_db_object', 'class', 'sites/all/modules/views/includes/view.inc', 'views', 10), czyli INSERT INTO `registry` (`name`, `type`, `filename`, `module`, `weight`) VALUES jak podgladam tabele 'registry' to jak mam tam ten offset wyciagnac? - offset 2080 of 3676 bytes EDIT: dokopalem sie tylko do kodu modulu:
Ten post edytował spamator12 28.04.2019, 14:20:41 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.05.2025 - 11:39 |