Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将MySQL4迁移到MySQL5数据库_Mysql_Database_Linux_Terminal_Mysqldump - Fatal编程技术网

如何将MySQL4迁移到MySQL5数据库

如何将MySQL4迁移到MySQL5数据库,mysql,database,linux,terminal,mysqldump,Mysql,Database,Linux,Terminal,Mysqldump,我有一个由MySQL4创建的数据库(db4)和一个由MySQL5创建的数据库(db5)。db4包含几个带有字符集latin1和几个索引的表,但没有使用MySQL“PASSWORD”函数加密的数据。db5是空的 我想将所有表和索引从db4迁移到db5(实际上在同一台服务器上)。理想情况下,这应该在不丢失任何信息的情况下在短时间内完成 我需要哪些终端命令从MySQL4下载完整的数据库,然后将数据插入db5?我必须重新创建索引吗?您可以使用mysqldump在mysql4中转储数据库。然后使用mysq

我有一个由MySQL4创建的数据库(db4)和一个由MySQL5创建的数据库(db5)。db4包含几个带有字符集latin1和几个索引的表,但没有使用MySQL“PASSWORD”函数加密的数据。db5是空的

我想将所有表和索引从db4迁移到db5(实际上在同一台服务器上)。理想情况下,这应该在不丢失任何信息的情况下在短时间内完成


我需要哪些终端命令从MySQL4下载完整的数据库,然后将数据插入db5?我必须重新创建索引吗?

您可以使用mysqldump在mysql4中转储数据库。然后使用mysql命令将其上传到MySQL5

mysqldump dbname > file
mysql dbname < file
mysqldump dbname>文件
mysql数据库名<文件

所有索引都将自动重新创建。

您可以使用mysqldump在mysql4中转储数据库。然后使用mysql命令将其上传到MySQL5

mysqldump dbname > file
mysql dbname < file
mysqldump dbname>文件
mysql数据库名<文件

所有索引都将自动重新创建。

Sven,我认为在db4中备份数据并在db5中恢复数据将对您有用

备份

mysqldump database_name > file_name.sql
恢复

mysql < file_name.sql 
mysql
Sven,我认为在db4中备份数据并在db5中恢复数据对您很有用

备份

mysqldump database_name > file_name.sql
恢复

mysql < file_name.sql 
mysql
也可以使用以下命令在一个步骤内完成:

 mysqldump -u dbo4 --password="..." --default-character-set="latin1" db4 | mysql -S /tmp/mysql5.sock -u dbo5 --password="..." --default-character-set="latin1" db5

不幸的是,带有特殊字符的标准值没有正确导入,似乎没有办法避免这一点:。

也可以使用以下命令在一个步骤内完成:

 mysqldump -u dbo4 --password="..." --default-character-set="latin1" db4 | mysql -S /tmp/mysql5.sock -u dbo5 --password="..." --default-character-set="latin1" db5

不幸的是,带有特殊字符的标准值没有正确导入,而且似乎没有办法避免:。

如果其他人需要将数据库从Mysql4移动到Mysql5,下面是我所做的

  • 从mysql4服务器转储数据库

    mysqldump -uuser -ppass db4 > db4.sql
    
  • 修复一些语法问题()

  • #将注释样式从--更改为#
    sed-r-i-e的/^--(.*)$/#\1/'db4.sql
    #将类型声明关键字从“类型”更改为“引擎”
    sed-i-e的/)TYPE=/)ENGINE=/'db4.sql
    #自适应时间戳字段定义
    sed-i-e的/timestamp(14)不为NULL,$/timestamp不为NULL更新当前时间戳时的默认当前时间戳,/'db4.sql
    
  • 在mysql5服务器上,现在可以导入修改后的SQL转储

    mysql -uuser -ppass db5 < db4.sql
    
    mysql-uuser-ppass db5

  • 如果其他人需要将数据库从Mysql4移动到Mysql5,下面是我所做的

  • 从mysql4服务器转储数据库

    mysqldump -uuser -ppass db4 > db4.sql
    
  • 修复一些语法问题()

  • #将注释样式从--更改为#
    sed-r-i-e的/^--(.*)$/#\1/'db4.sql
    #将类型声明关键字从“类型”更改为“引擎”
    sed-i-e的/)TYPE=/)ENGINE=/'db4.sql
    #自适应时间戳字段定义
    sed-i-e的/timestamp(14)不为NULL,$/timestamp不为NULL更新当前时间戳时的默认当前时间戳,/'db4.sql
    
  • 在mysql5服务器上,现在可以导入修改后的SQL转储

    mysql -uuser -ppass db5 < db4.sql
    
    mysql-uuser-ppass db5

  • 如果数据库非常庞大,您可以压缩这些文件,例如使用
    mysqldump dbname | gzip>file.gz
    然后使用
    gunzip-c file.gz | mysql dbname
    如果数据库非常庞大,您可以压缩这些文件,例如使用
    mysqldump dbname | gzip>file.gz
    然后使用
    gunzip-c file.gz | mysql dbname