#linux #ubuntu #vps #mysql

Mam kopię całego folderu mysql, czy można z tego odzyskać poprzednie bazy danych?

Ogólnie sprawa wygląda tak. Był sobie VPS, na którym śmigała sobie aplikacja i korzystała z bazy w mysql. Pewnego dnia ktoś zmienił hasło do VPS i nie dało się tam wejść po ssh. Jedyna możliwość aby dostać się do plików to tryb rescue. W tym trybie udało
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

1. brak hasla do db to po prostu start mysql z --skip-grant-tables (zagooglaj co dokladnie i jak)
2. jesli podstawisz zawartosc katalogow z DB po calosci w miejsce gdzie masz czystego mysqla zainstalowanego, to masz duze szanse powodzenia.
  • Odpowiedz
ak, chociaż to co jest na dysku wcale nie musi być "poprawne" - mogłeś wyłączyć serwer w połowie zapisu.


@elirath: Baza z InnoDB przetrwa niezależnie od momentu w którym jej przerwiesz (jak każda inna baza ACID).

@siemanko: Jeśli nie użyjesz tej samej wersji MySQL lub nowszej to sama podmiana /var/lib/mysql powinna wystarczyć.
  • Odpowiedz
czego mam szukać jeśli chcę aby serwer #mysql działał w pamięci (solidny cache lub całkowicie w pamięci - obecnie mam wolne ok 60GB ramu). Ważne jest jednak dla mnie, aby w przypadku nieoczekiwanego restartu (wystąpić może raz na rok, chociaż miałem ponad 3 lata spokoju z takimi rzeczami) baza była zrzucona na dysku (kopie wykonuję raz na godzinę, ale to i tak za rzadko, chciałbym aby był jakiś mirroring czy
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wladyslaw_Jagiello:
1. żeby było w pamięci - innodb pool size na rozmiar bazy + minimum 10% . Kontaktu z dyskiem nie unikniesz, ale będziesz miał solidne wsparcie RAM. Na ramdysku bazy NIE odplaj.
2. Dobrze zrobić sobie RAID 10, który zabezpieczy Cię przed awarią dysku (i solidnie przyśpieszy)
3. Dobrze mieć z boku replikę, która będzie miała aktualne dane praktycznie na bieżąco w przypadku awarii/restartu serwera głównego
4. oprócz dumpów
  • Odpowiedz
@Wladyslaw_Jagiello: Rozwiązanie proponowane przez RRybak jest poprawne. Pamiętaj że MySQL ma różne pule i cache i spokojnie można na tym polecieć bez trzymania całej bazy w pamięci. Jak mimo wszystko upierasz się by mieć bazę in-memory to taką funkcjonalność posiada storage Engine NDB do MySQL, ale to nie wiem czy nie strzelasz z armaty do wróbla.
  • Odpowiedz
Muszę zrobić projekt bazy sprzedaży biletów do kina.
"Szkielet bazy" jest zrobiony. Muszę teraz tylko wypisać relacje między tabelami i osobną kartkę z diagramami ER. Diagramy będą potem, bo z nimi powinienem dać radę.

Dobrze wypisałem relację?

Tabela Seans id_seans z tabela Rezerwacja id_seans - jeden do wielu (jeden seans może mieć wiele rezerwacji)
M.....k - Muszę zrobić projekt bazy sprzedaży biletów do kina.
"Szkielet bazy" jest ...

źródło: comment_SdXni0pvUF8ecDVpVQ1eQFWq1KKTzwLy.jpg

Pobierz
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 3
@MemoryStick no to jest bez sensu, wiadomo :p. a skąd będziesz wiedział, że trzeba użyć nowej ceny :)? Co z stworzonym seansami? Cena powinna być powiązana z rezerwacją moim zdaniem
  • Odpowiedz
Pominąłeś - "Dlaczego rezerwacja pozwala na zaklepanie tylko jednego pojedynczego miejsca?"

ad 1. Nie rozumiem. Możesz wytłumaczyć dlaczego?


@MemoryStick: Nie bardzo wiem co tutaj można tłumaczyć, tabela łącznikowa to po prostu relacja wiele do wielu między dwoma tabelami w tym przypadku między filmem i
  • Odpowiedz
  • 1
Wynajmę programistę webdevelopera do naprawienia kilku błędów w #wordpress. Bardzo dobra znajomość #php i #mysql wymagana.
#programowanie
Proszę o PW.
P.S. bo mam dość Hindusów z freelancer.com
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KornixPL: to znaczy ze za duzy masz dump i nie zdazyl sie zaladowac ;)
Masz wjazd po ssh do tego VPSa?
- zaladuj dumpa z reki (mysql -u user -p DB <dump.sql)
Albo mozliwosc zmiany ustawien php?
- podbij max execution time, zrestartuj webserwer i wio
  • Odpowiedz
Hej mireczki, poszukuję webdeva do zdalnej współpracy przy fajnym projekcie związanym z #gry i #media :) Wymagana znajomość PHP (Laravel), MySQL, Node.JS oraz Socket.IO a także liźnięcie odrobiny front-endu żeby wiedzieć co i jak. Stawka ok 40-50 brutto /h, na umowę zlecenie lub B2B (tak, wiem że programiści 15k nie wstają dla takich pieniędzy (,)). Praca generalnie na 1/3 etatu (mogą się zdarzyć miesiące
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gosolution: są ludzie którzy potrzebują dodatkowych godzin, albo pracują np na 2/3 etatu, albo mają trochę wolnego czasu, etc etc, są różne przypadki. Jakbym miał żeby zatrudnić programistę15k na pełen etat to bym to zrobił, bo by się jak najbardziej przydał, ale nie mam i bez deva na 1/3 nie jestem w stanie ruszyć dalej szybko tematu, przez co koło się zamyka :/
  • Odpowiedz
Przyjazne linki w php na moderawrite w htaccess - Ok. Ale jak z nich wyeliminować cyfry, które sa identyfikatorem? Domena.pl/kategoria/nazwa/123 żeby miała postać domena.pl/kategoria/nazwa. Czyli nazwa musi być unikalna. Bawić sie w jakies automatyczne generowanie htacces na podstawie wcześniej przypisanych adresów w bazie? #php #mysql
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mgmgmg: jeśli już się troszkę naumiałeś PHP, umiesz wykonywać operację na stringach, pętle Ci nie obce, pierwsze logowanie za Tobą, generowanie plików i czytanie bazy danych, to....

tak, to dobry czas byś poznał Symfony 2, albo przynajmniej Code Ignitera. Problem z CI w porównaniu do np. SF2 jest taki, że... tych gotowych ładnych klocków nie ma. CI jest bardzo ubogi, daje bardzo mało. Dużo rzeczy piszesz samemu np. wspomniane logowanie.
  • Odpowiedz
Taka ciekawostka:

Jeżeli w #mysql mamy widok v1, a następnie utworzymy widok v2, zbudowany "na podstawie" widoku v1 za pomocą CREATE VIEW v2 AS SELECT * FROM v1, to dodanie nowej kolumny do widoku v1 nie powoduje dodania tej samej kolumny do widoku v2. MySQL zamienia znak * na listę kolumn przed zapisaniem widoku - co, przynajmniej dla mnie - wcale nie było oczywiste.
#bazydanych
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@singollo: Tak działa KAŻDY widok - także z tabeli, a nie tylko innego widoku.

The view definition is “frozen” at creation time and is not affected by subsequent changes to the definitions of the underlying tables. For example, if a view is defined as SELECT * on a table, new columns added to the table later do not become part of the view, and columns dropped from the table will
  • Odpowiedz
◢ #unknownews

kolejna porcja ciekawych znalezisk z Hacker News z ostatnich 5 dni (trochę się zaniedbałem z wrzucaniem...)


1) Jak zdefiniowanie strefy czasowej w #linux wypływa na wydajność aplikacji?
https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
imlmpe - ◢ #unknownews ◣

 kolejna porcja ciekawych znalezisk z Hacker News z ostatn...

źródło: comment_OXFXis2aAsgR97Toal9EALRC2ZaOCr7t.jpg

Pobierz
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam problem w MySQL. Są dwie tabele - owners i items. Połączone są relacją 1:n owners.ownerId - items.ownerId
Problem: muszę wybrać nie więcej niż 4 przedmioty każdego użytkownika (i przestawić im pewne flagi, ale to już nie ważne)

Próbowałem na dwa sposoby: złączyć (JOIN) skorelowane zapytanie z LIMIT:
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

SELECT * FROM (
SELECT i1.*, count(*) as cnt
FROM items AS i1
LEFT JOIN items AS i2
ON i1.ownerid = i2.ownerid
AND i1.id > i2.id) q
WHERE q.cnt >= 4
  • Odpowiedz
Pewnie banał, ale nie mogę sobie z tym poradzić... Chcę stworzyć warunek, który będzie sprawdzał czy dany login i haslo znajduje się w bazie. Zapytanie stworzyłem, ale dalej utknąłem a tutki na necie są bardzo rozbieżne.
Może ktoś zerknie i podpowie? skrypt

Ps. Tak wiem, łączenie oczywiście w innym pliku.
#programowanie #php #mysql
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@saffal: Hej, nie znam się na php, ale wydaje mi się że dobrą praktyką jest nazywanie zmiennych po angielsku i nie trzymanie hasła w plain tekscie w bazie
  • Odpowiedz
Czolem Mireczki.
Czy jakis expert od #linux czy tez #mysql moglby mi pomoc w backupie bazy danych?
Nie znam sie na tym kompletnie a chchialbym codziennie backupowac baze danych, ktora stworzylem, na inny dysk.
Po krotce, stawiam honeypota #kippo i chcialbym, zeby cala baza sie backupowala za pomoca crona, gdybym mogl na dropboxa to byloby perfekt, chociaz lokalny dysk jest rowniez ok. Problem w tym, ze
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#mysql Drodzy Państwo! ;) Powiedzcie mi, co jest lepszym rozwiązaniem w przypadku mysql 5.1: pojedyncze pliki dla tabel innodb czy jeden gigantyczny plik? Gugiel daje niejednoznaczne odpowiedzi: jeden powie tak, drugi nie.
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jurigag: Jeśli przekonam klienta do zmiany.
Tak więc, co będzie lepsze, jeden duży czy wiele mniejszych? Danych będzie systematycznie przybywać. W tej chwili jest koło 1GB.
  • Odpowiedz
@grabsoon: masz błąd klucza zewnętrznego. Tak właściwie, to gdzie masz kolumnę do tego klucza w z files? Bo dajesz autoincrement na coś, co ma zawierać ID z drugiej tabeli - technicznie wykluczyłeś sobie takie połączenie. Wywal to, albo załóż osobną kolumnę w rodzaju id_z_drugiej_tabeli.
  • Odpowiedz
Nie mogę się połączyć z mysql ;_;

Workbench:

Lost connection to MySQL server at 'reading initial communication packet', system error: 0
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Problem. Baza danych.

id, tresc, kolejnosc
[1, aaa, 1]
[2, bbb, 2]
[3, ccc, 3]
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

a i tak na koniec zostaniesz ze skryptem który będzie za każdym razem nadpisywał kolejność całości :)
  • Odpowiedz
Jedyne co znalazłem w dokumentacji:

If you access a column from the table to be updated in an expression, UPDATE uses the current value of the column. For example, the following statement sets col1 to one more than its current value:

UPDATE t1 SET col1 = col1 + 1;

The second assignment in the following statement sets col2 to the current (updated) col1 value, not the original col1 value. The result is
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
Hej Mirki!
Czy moglibyście doradzić jakiś kurs SQL może być online ale i jakiś stacjonarny w Warszawie też da radę. Jestem w tym temacie totalnie zielony więc może najpierw sam bym zaczął coś w ruin temacie dłubać a później jakiś kurs na żywo.
#sql #mysql
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach