![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 19.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć. Robię prezentację na temat interakcji Mysql z poziomu PHP zostało mi ostatnie zagadnienie import eksport baz danych MySQL, muszę w najprostszy sposób zademonstrować jaki taki manewr wykonać i uwiecznić go screenami. No i zaczęły się schody :/ W internecie wyczytałem że można tego dokonać za pomocą mysqldump i mysqlimpor, no i tyle konkretów niestety. Druga możliwość to phpMyAdmin, ściągnąłem najnowszą wersję, wypakowałem to htdocs, zmieniłem następujące ustawienia w pliku config.default.php :
Kod: $cfg['Servers'][$i]['user'] = 'root'; na: $cfg['Servers'][$i]['user'] = ' root'; Kod: $cfg['Servers'][$i]['password'] = ''; Na: $cfg['Servers'][$i]['password'] = 'Na moje hasło do Mysql'; No i nie działa. Może ktoś pomóc, bo już brak mi pomysłów a termin mnie goni ![]() |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
eksport:
mysqldump -u root -p -h [host] --database nazwa_bazy >> nazwa_pliku_ze_zrzutem.sql import: mysql -u root -p -h [host] nazwa_bazy < nazwa_pliku_ze_zrzutem.sql Nazwę hosta możesz pominąć jeśli wykonujesz to na lokalu.
Powód edycji: [blooregard]:
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 30 Dołączył: 5.05.2007 Skąd: Mannheim Ostrzeżenie: (0%) ![]() ![]() |
Ustawienia PhpMyAdmin zmieniasz w pliku config.inc.php.
Lepiej jednak zrobic to tak jak napisal blooregard. Zobacz tutaj http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html . Wedlug specyfikacji MySql syntax jest jednak troszke inny : mysqldump --opt db_name > backup-file.sql Pozdrawiam -------------------- Flash Flex PHP JAVA RED5 http://www.easyweb24.net
|
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Ustawienia PhpMyAdmin zmieniasz w pliku config.inc.php. Lepiej jednak zrobic to tak jak napisal blooregard. Zobacz tutaj http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html . Wedlug specyfikacji MySql syntax jest jednak troszke inny : mysqldump --opt db_name > backup-file.sql Pozdrawiam No tak, dokładna składnia polecenia różni się od tej, co podałem, w zależności od tego, co jest akurat wymagane/potrzebne w zrzucie ![]() Niemniej jednak, zrzut bazy poprzez mysqldump to najszybszy sposób, szczególnie przy bazach zawierających wiele tysięcy rekordów. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 19.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za szybką i konkretną odpowiedzi.Teraz powiedzcie mi czy dobrze robię: piszę skrypt w php:
Nie idzie pisze: Parse error: syntax error, unexpected T_DEC in C:\Apache\htdocs\eksport.php on line 2 . Jak ma to przebiegać? Sorry za takie głupie pytania, ale naprawdę jestem początkujący :/ Edit: Tak sobie sprawdzając możliwości MySQL natknąłem się na MySQL Administrator, i nie wiem czy dobrze pojmuje ale tu chyba jest możliwość eksportu i importu baz danych, po lewej stronie znajduję się menu i tam mam Backup, Restore. Klikam Backup i tam mam swoją bazę danych klikam execute Backup np no i chyba ją eksportuje plik się zapisuje z rozszerzeniem .sql zawartość pliku po otwarciu programem Notepad wygląda: -- MySQL Administrator dump 1.4 -- -- ------------------------------------------------------ -- Server version 5.1.56-community /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- -- Create schema dom -- CREATE DATABASE IF NOT EXISTS dom; USE dom; -- -- Definition of table `testowa` -- DROP TABLE IF EXISTS `testowa`; CREATE TABLE `testowa` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pole` varchar(75) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -- -- Dumping data for table `testowa` -- /*!40000 ALTER TABLE `testowa` DISABLE KEYS */; INSERT INTO `testowa` (`id`,`pole`) VALUES (1,'dawid'), (2,'emil'), (3,'donia'); /*!40000 ALTER TABLE `testowa` ENABLE KEYS */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; Tak ma to wyglądać? No i teraz mogę sobie ten plik skopiować na pamięć przenośną i importować W Mysql Administaor za pomocą Restore? Ten post edytował Endure 19.05.2011, 11:55:11 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za szybką i konkretną odpowiedzi.Teraz powiedzcie mi czy dobrze robię: piszę skrypt w php:
Nie idzie pisze: Parse error: syntax error, unexpected T_DEC in C:\Apache\htdocs\eksport.php on line 2 . Jak ma to przebiegać? Sorry za takie głupie pytania, ale naprawdę jestem początkujący :/ Musisz użyć mysql_query do wywoływania komend MySQL ![]() Edit: Tak sobie sprawdzając możliwości MySQL natknąłem się na MySQL Administrator, i nie wiem czy dobrze pojmuje ale tu chyba jest możliwość eksportu i importu baz danych, po lewej stronie znajduję się menu i tam mam Backup, Restore. Klikam Backup i tam mam swoją bazę danych klikam execute Backup np no i chyba ją eksportuje plik się zapisuje z rozszerzeniem .sql zawartość pliku po otwarciu programem Notepad wygląda: -- MySQL Administrator dump 1.4 -- -- ------------------------------------------------------ -- Server version 5.1.56-community /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- -- Create schema dom -- CREATE DATABASE IF NOT EXISTS dom; USE dom; -- -- Definition of table `testowa` -- DROP TABLE IF EXISTS `testowa`; CREATE TABLE `testowa` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pole` varchar(75) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -- -- Dumping data for table `testowa` -- /*!40000 ALTER TABLE `testowa` DISABLE KEYS */; INSERT INTO `testowa` (`id`,`pole`) VALUES (1,'dawid'), (2,'emil'), (3,'donia'); /*!40000 ALTER TABLE `testowa` ENABLE KEYS */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; Tak ma to wyglądać? No i teraz mogę sobie ten plik skopiować na pamięć przenośną i importować W Mysql Administaor za pomocą Restore? Dokładnie ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cytat Musisz użyć mysql_query do wywoływania komend MySQL A co ma komenda systemowa do mysql_query? system exec i pochodne tych funkcji. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 30 Dołączył: 5.05.2007 Skąd: Mannheim Ostrzeżenie: (0%) ![]() ![]() |
Aloha ! Mam chwile czasu to sobie popisze troche . A wiec nalezaloby wprowadzic troche logiki do tego przesluchania
![]() Wiec jeszcze raz jezeli chodzi o mysqldump. Jest to programik systemowy doloaczony do dystrybucji MySql-a, ktory ja sama nazwa wskazuje wykonuje dumpy (zrzuty) baz danych , lub pojedynczych tabel do dalszej redystrybucji. Poniewaz jest to program tzw. systemowy, nie mozna uruchomic go bezposrednio z php-a ( mam na mysli jakas funkcje php ktora pracowalaby z wkompilowanym rozszerzeniem obslugujacym mysqldump ), jedyne co ci pozostaje, to uzyc, tak jak powiedzial kolega @melkorm funkcji system, exec etc. Kod <? system("mysqldump -uroot -phaslo dom > backup-file.sql"); ?> No a teraz co sie z tym wiaze. 1. Jezeli robisz to pod Windowsem na swoim localhoscie, musisz upewnic sie czy twoj system zna sciezke do programu mysqldump. Nalezaloby w CMD napisac Kod echo $PATH i sprawdzic, czy ktoras ze wskazanych sciezek systemowych laduje w katalogu mysql/bin, bo tam wlasnie umieszczony jest program mysqldump. Druga mozliwosc to wpisac w CMD mysqldump i zobaczyc czy system znajduje ten program. Jezeli nie znajduje to powinienes sciezke do mysql/bin dodac do sciezek w swoim systemie. Jezeli uzywasz XAMPP powinno to byc C:/XAMPP/mysql/bin. Mozesz rowniez uruchomic mysqldump w php w ten sposob Kod <? system("C:/XAMPP/mysql/bin/mysqldump -uroot -phaslo dom > backup-file.sql"); ?> Nalezaloy sie rowniez zastanowic gdzie zostanie wygenerowany plik backup-file.sql, bo w tym przypadku bedzie to dokladnie katalog, w ktorym zanjduje sie mysqldump. Czyli zeby miec nad tym jakas kontrole nalezaloby zrobic to tak Kod <? system("C:/XAMPP/mysql/bin/mysqldump -uroot -phaslo dom > C:/jakis_folder/backup-file.sql"); ?> 2. Jest to najszybszy sposob na zrobienie zrzutu bazy, ale funkcja "system" , jest na tyle asynchroniczna, ze przy duzej bazie twoj skrypt php zakonczy sie wczesniej niz utworzenie dumpa. Nie masz mozliwosci z poziomu php ( w szczegolnosci pod winda ) dowiedziec sie czy twoja operacje zakonczyla sie sukcesem, czy trwa , albo czy wogole sie zaczela ![]() 3. Jezeli taki trik chcesz zastosowac na servie , na ktorym masz jedynie webspace, najprawdopodobniej zakonczy sie to niepowodzeniem, poniewaz nie bedziesz mial mozliwosci uruchamiania z poziomu php programow, ktore wymagaja podania sciezki spoza twojego dokumentu root. ( No chyba, ze administrator ci n to pozwoli ). Czyli jak widac nie jest to takie trywialne zadanie, dlatego PhpMyAdmin robi to, uzywajac dostepnych funkcji do pracy z baza mysql. W tej sytuacji powinienes rozpoczac od Kod $res = mysql_query ("show tables"); Wylistowac wszystkie table no i nastepnie krok po kroku selectowac kazda jedna, a z razultatu robic potrzebny ci plik tekstowy ( zgodnie z syntaxem mysql ) , ktory bedzie twoim dumpem; Ufff. Przepraszam za przynudzanie Pozdrawiam. -------------------- Flash Flex PHP JAVA RED5 http://www.easyweb24.net
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 19.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Ci kolego wielkie
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 20:58 |