phpmyadmin - kopiera databaser

Tråden skapades och har fått 12 svar. Det senaste inlägget skrevs .
1

Jag försöker kopiera databaser från phpmyadmin på min lokala burk till phpmyadmin på Oderlands burk.
Hur tusan jag än bär mig åt så får jag det ena retliga felmeddelandet efter det andra och glor som den pinsamt okunniga mysql-wannabe jag är (jo det är sant, jag vill bli mysql!)

Jag är säker på att det finns några grundläggande tumregler om hur man navigerar runt de vanligaste inkompatibiliteterna mellan olika phpmyadmins och php'sar etc.

Jag har dumpat från phpmyadmin och sedan importerat med det igen framgångsrikt. Vissa gånger har det dock blivit problem. Senast var nog filen för stor helt enkelt. Då fick jag ftp:a upp filen och logga in med SSH och köra mysql på kommandoraden och importera på det sättet. Vad får du för felmeddelanden?

Ursprungligen av Adrian B:

Jag har dumpat från phpmyadmin och sedan importerat med det igen framgångsrikt. Vissa gånger har det dock blivit problem. Senast var nog filen för stor helt enkelt. Då fick jag ftp:a upp filen och logga in med SSH och köra mysql på kommandoraden och importera på det sättet. Vad får du för felmeddelanden?

Ja så här säger den då...

SQL-fråga:

CREATE TABLE exp_actions(
action_id int( 4 ) unsigned NOT NULL AUTO_INCREMENT ,
class varchar( 50 ) NOT NULL default  '',
method varchar( 50 ) NOT NULL default  '',
PRIMARY KEY ( action_id )
) ENGINE = MYISAM DEFAULT CHARSET = latin1

MySQL sa: 

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1' at line 6 

Nu testade jag att bara exportera strukturen och inte nånna data och då ska det fan köra fast ändå!

SQL-fråga:

CREATE TABLE  `exp_actions` (
 `action_id` int( 4 ) unsigned NOT NULL AUTO_INCREMENT ,
 `class` varchar( 50 ) NOT NULL default  '',
 `method` varchar( 50 ) NOT NULL default  '',
PRIMARY KEY (  `action_id` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =19

MySQL sa: 

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1 AUTO_INCREMENT=19' at line 6 

Nu testade jag att stryka halva sista raden, istället för:

) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =19

skrev jag:

) CHARSET = latin1 AUTO_INCREMENT =19

och nu funkade det men varför? Och har jag ställt till det för mig för framtiden nu?

  • Oregistrerad
  • 2005-10-05 18:20

Kolla så att bägge MySQL är samma version. Tror det är ditt problem - dvs att den du kopierar till inte har MYISAM.

  • Oregistrerad
  • 2005-10-05 18:25

Har personligen också haft enorma bekymmer med likanande problem och för min del har det alltdi varit filstorleken som spökat. Om du har möjlighet så gör det via terminalen istället.

Export - alla databasen
mysqldump --all-databases --opt -u root -p > all_databases.sql

Export en db
mysqldump --opt -u root -p db_name > db_name.sql

Export en table
mysqldump --opt -u root -p db_name table_name > table.sql

Import
/usr/local/mysql/bin/mysql -u root -p < all_databases.sql

Import en tabel
/usr/local/mysql/bin/mysql -D db_name -p < table.sql

Som du ser är det ganska överskådligt och grymt effektivt.

Ursprungligen av Mattias Bodlund:

Har personligen också haft enorma bekymmer med likanande problem och för min del har det alltdi varit filstorleken som spökat. Om du har möjlighet så gör det via terminalen istället.

Export - alla databasen
mysqldump --all-databases --opt -u root -p > all_databases.sql

Export en db
mysqldump --opt -u root -p db_name > db_name.sql

Export en table
mysqldump --opt -u root -p db_name table_name > table.sql

Import
/usr/local/mysql/bin/mysql -u root -p < all_databases.sql

Import en tabel
/usr/local/mysql/bin/mysql -D db_name -p < table.sql

Som du ser är det ganska överskådligt och grymt effektivt.

Funkar det här även om den ena databasen har MYISAM och den andra inte?

  • Oregistrerad
  • 2005-10-05 19:15

Det beror på hur du använder databasen - de olika typerna har lite olika features så som transactions och annat.

Läs mer om detta på MySQL.com

Ursprungligen av Mattias Bodlund:

Kolla så att bägge MySQL är samma version. Tror det är ditt problem - dvs att den du kopierar till inte har MYISAM.

Oderland kör:
MySQL 4.0.25-standard
medans jag lokalt på min mac har:
MySQL 4.1.12-standard

om har två olika inte särsklt kompatibla ordbehandlingsprogram så brukar man ändå kunna exportera en text som tex RTF.
Finns det något liknande att ty sig till i my-sql-världen?

Det hände väl rätt mycket när MySQL gick från 4.0.x till 4.1 om jag inte minns fel. Det kan ställa till med problem. Från dokumentationen:

It is important to note that the “MySQL 4.0 character set” contains both character set and collation information in one single entity. Beginning in MySQL 4.1, character sets and collations are separate entities. Though each collation corresponds to a particular character set, the two are not bundled together.

Ursprungligen av Adrian B:

Det hände väl rätt mycket när MySQL gick från 4.0.x till 4.1 om jag inte minns fel. Det kan ställa till med problem.

Jag snackade just med folket på Oderland som valt att invänta en stabilare version av 4.1 som annars har hyggligt stöd för utf-8 om jag begrep saken rätt.

1
Bevaka tråden