10

Moving from an old Win2003 server to a new VM server (our choice Win or Linux) if we go Linux would there be any problems converting the current tables?

4

4 回答 4

14

将 MySQL/Windows 移动到相同版本的 MySQL/Linux

您可以按如下方式对所有数据库进行 mysqldump:

C:\> mysqldump -uroot -p --routines --triggers --flush-privileges --all-databases > MySQLData.sql

移至MySQLData.sqlLinux 框并运行重新加载

mysql -uroot -p < MySQLData.sql

将 MySQL/Windows 迁移到更高版本的 MySQL/Linux

你可以mysqldump所有的数据库除了mysql SCHEMA !!! 为什么?

这是一个 Windows 批处理脚本,用于 mysqldump 除 mysql 架构之外的所有数据库,然后在纯 SQL 中转储 mysql 架构:

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。然后,加载授权。

试试看 !!!

于 2013-07-24T00:22:11.017 回答
2

您不需要转换表格。来自 Windows 服务器的 SQL 转储很容易导入 Linux 上的 MySQL。

于 2013-07-23T18:28:55.000 回答
0

您可以导出数据库(包含数据的表)。然后你会得到 sql 脚本文件。如果您在新系统中运行该脚本文件,您的表和数据将在新系统中可用

于 2013-07-23T19:31:59.903 回答
0

不,桌子会很好。您还应该能够毫无问题地传输配置文件

使用 mysqldump 然后只使用 mysql 命令恢复备份

于 2013-07-23T19:22:23.183 回答