Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Baza MySQL Windows --> Linux
Forum PHP.pl > Forum > Bazy danych > MySQL
exit
Witam

Mam bazę danych w MySQL (5.0.27), w której mam tylko jedną tabelę. Baza ta jest pod Windowsem a chcę ją przenieść na Linuxa.
Tylko jak to zrobić.
W Windowsie baza składa się z dwóch plików z rozszeżeniami .opt oraz .frm, natomiast pod Linuxem są cztery pliki: .opt, .frm, .myd, .myi.

Zrobiłem tak, że przekopiowałem pliki .opt i .frm do Linuxa i prawie zadziałało, tzn: (baza nazywa się firmy a tabela dane)

Jak wydam polecenie:
  1. SHOW DATABASES;

to dostaję odpowiedź, że jest baza o nazwie firmy, czyli ok snitch.gif

Jak wydam polecenie:
  1. SHOW TABLES;

to dostaję odpowiedź, że istnieje tabela o nazwie dane, czyli ok snitch.gif

Jak wydam polecenie:
  1. SELECT * FROM dane;

to dostaję odpowiedź: ERROR 1146 (42SO2): Table 'firmy.dane' doesn't exist,
czyli jak rozumiem pisze mi tu, że nie ma tabeli o nazwie dane mad.gif

Więc dlaczego polecenie show tables pokazuje, że ta tabela jest dry.gif

Z góry dzięki za pomoc

Pozdrawiam
mysz
Z shella:
mysqldump -u login -p -h host nazwa_bazy_danych > nazwa_bazy_danych.sql

w pliku .sql pojawi Ci się zrzut zawartości bazy danych. Teraz na drugim komputerze:
mysql -u login -p -h host nazwa_bazy_danych < nazwa_bazy_danych.sql

Spowoduje to wrzucenie wczesniejszego dumpa do nowej bazy.
Nie ma znaczenia czy to Windows, czy Linuks.
exit
Hmm

Nie wiem czy dobrze to robię ale:

1. Robię tak (wydaję polecenie w konsoli mysql)
mysql> mysqldump -u root -p 123456 -h localhost firmy >firmy.sql;

i dostaję komunikat, że mam błąd składni

2. Robię tak (normalnie w wierszu poleceń w Windowsie)
C:\ mysqldump -u root -p 123456 -h localhost firmy >firmy.sql

i dostaję komunikat odmowa dostępu

Co jest nie tak?
mysz
Nie z poziomu mysql, tylko z samego shella. Czyli tak jak drugą metodą.
Jeśli chcesz dać hasło w ten sposób, to pomiędzy '-p' a hasłem nie może być odstępu (czyli np -pMOJE_HASLO). Natomiast jeśli podasz samo -p (bez hasła) to mysql grzecznie zapyta... smile.gif
exit
No i wszystko działa jak należy.

Bardzo wielkie dzięki smile.gif

A jakby ktoś miał podobny problem to podpowiem, że przed wykonaniem polecenia

mysqldump -u uzytkownik -p -h nazwa_hosta nazwa_bazy < nazwa_bazy.sql

w Linuxie, trzeba sobie najpierw ręcznie założyć taką bazę danych (pustą, bez żadnych tabel) resztę załatwia mysqldump jak to opisł #mysz

Pozdrawiam
jezoo
mnie sie wydaje ze nie trzeba tworzyc bazy danych, tylko trzeba na poczatku dodac w pliku *.sql taka definicje:

  1. CREATE DATABASE `twoja_baza`;
  2. USE `twoja_baza`;
  3. DROP TABLE IF EXISTS `jakas_tabela`;

itd
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.