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スキーマを除くすべてのデータベースをmysqldumpできます!!!なぜですか?
- MySQLには、
mysql.user
というメインテーブルのユーザーに対する権限があります。 。 - MySQLのメジャーリリースごとに、
mysql.user
次の数の列があります:- MySQL5.6の43列
- MySQL5.5の42列
- MySQL5.1の39列
- MySQL5.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してから、純粋なSQLでmysqlスキーマをダンプするWindowsバッチスクリプトです。
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とGrantsファイルを作成したら、それらをLinuxサーバーにコピーしてローカルで実行します。最初にmysqldumpを実行します。次に、助成金を読み込みます。