MySQL/Windows को MySQL/Linux के समान संस्करण में ले जाना
आप सभी डेटाबेस को निम्नानुसार mysqldump कर सकते हैं:
C:\> mysqldump -uroot -p --routines --triggers --flush-privileges --all-databases > MySQLData.sql
ले जाएँ MySQLData.sql
Linux बॉक्स में और फिर से लोड करें
mysql -uroot -p < MySQLData.sql
MySQL/Windows को MySQL/Linux के उच्चतर संस्करण में ले जाना
आप mysql SCHEMA को छोड़कर सभी डेटाबेस को mysqldump कर सकते हैं !!! क्यों?
- MySQL के पास उपयोगकर्ता के लिए
mysql.user
नामक एक मुख्य तालिका में अनुदान है । - MySQL की प्रत्येक प्रमुख रिलीज़ के लिए,
mysql.user
कॉलम की निम्नलिखित संख्या है:- MySQL 5.6 में 43 कॉलम
- MySQL 5.5 में 42 कॉलम
- MySQL 5.1 में 39 कॉलम
- MySQL 5.0 में 37 कॉलम
- MySQL 4.0/4.1 में 31 कॉलम
- मैंने
mysql.user
पर चर्चा की है पहले की कॉलम व्यवस्थाMay 01, 2013
:क्या मैं डेटा फ़ाइलों से MySQL के किस संस्करण का पता लगा सकता हूं?Dec 24, 2012
:"mysql" डेटाबेस का बैकअप लें और पुनर्स्थापित करेंJun 13, 2012
:डेटाबेस को एक सर्वर से दूसरे सर्वर पर ले जाने का सबसे तेज़ तरीकाFeb 08, 2012
:क्या 5.5.20 से 5.0.XX सर्वर काम करेगा?
यहाँ mysql स्कीमा को छोड़कर सभी डेटाबेस को mysqldump करने के लिए एक Windows बैच स्क्रिप्ट है और फिर mysql स्कीमा को शुद्ध SQL में डंप करें:
rem
rem Startup Settings
rem
set MYSQL_CONN=-uroot -prootpassword
set MYSQLDUMP_OUTPUT=C:\LocalDump.sql
set MYSQL_USERGRANTS=C:\LocalGrants.sql
set MYSQL_TEMPGRANTS=C:\TempGrants.sql
rem
rem Get MySQL User Data
rem
set MYSQLDUMP_OPTIONS=--routines --triggers --databases
set SQLSTMT=SELECT CONCAT('mysqldump %MYSQL_CONN% %MYSQLDUMP_OPTIONS% ',DBList)
set SQLSTMT=%SQLSTMT% FROM (SELECT GROUP_CONCAT(schema_name SEPARATOR ' ') DBList
set SQLSTMT=%SQLSTMT% FROM information_schema.schemata WHERE schema_name NOT IN
set SQLSTMT=%SQLSTMT% ('information_schema','mysql','performance_schema')) A
echo echo off > C:\RunLocalDump.bat
mysql %MYSQL_CONN% -ANe"%SQLSTMT%" >> C:\RunLocalDump.bat
C:\RunLocalDump.bat > %MYSQLDUMP_OUTPUT%
rem
rem Get MySQL User Grants
rem
set SQLSTMT=SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';')
set SQLSTMT=%SQLSTMT% FROM mysql.user WHERE LENGTH(user)
echo %SQLSTMT%
mysql %MYSQL_CONN% -ANe"%SQLSTMT%" > %MYSQL_TEMPGRANTS%
mysql %MYSQL_CONN% -AN < %MYSQL_TEMPGRANTS% > %MYSQL_USERGRANTS%
del %MYSQL_TEMPGRANTS%
एक बार जब आप mysqldump और अनुदान फ़ाइल बनाते हैं, तो बस उन्हें लिनक्स सर्वर पर कॉपी करें और उन्हें स्थानीय रूप से निष्पादित करें। पहले mysqldump निष्पादित करें। फिर, अनुदान लोड करें।