将数据库备份文件从xamp / mysql / windows的数据复制到路径/ var / lib / mysql

时间:2015-06-26 04:13:16

标签: mysql linux phpmyadmin ubuntu-14.04

将数据库备份文件从xamp / mysql / windows的数据复制到路径/ var / lib / mysql中的linux,但它在linux的phpmyadmin中只创建空数据库,请有人帮我解决这个问题,我有只有这些文件与我一起备份

2 个答案:

答案 0 :(得分:1)

最好的方法是 -

步骤1:通过mysqldump -

从Windows进行备份
mysqldump -uroot -proot123 -A > backup.sql

步骤2:将此备份移至linux,您可以使用winscp工具。

步骤3:现在将此备份恢复到linux机器。

mysql -uroot -proot123 < backup.sql

修饰: 看来你的数据库引擎是myisam,你只是将文件/文件夹从窗口转移到linux,所以按照下面的规定给出权限 -

chown -R mysql.mysql /var/lib/mysql

答案 1 :(得分:0)

首先在linux上的用户主文件夹中创建一个包含mysql root密码的.my.cnf文件。 在Windows上,存在.my.ini或具有相同目的的东西。这样你就不必在接下来的步骤中重新输入你的密码,你很可能会多次重复这些密码,直到你把它们弄好,我担心。 :)

由于unix / linux和windows有不同的保存文件的方法,因此在简单的复制 - 恢复过程中很可能会遇到错误,具体取决于您复制文件的方式。

您最好的选择是将原始mysql文件夹复制到另一台Windows计算机并相应保存,以便mysql可以找到它们。 (当然,安装了mysql个实例。)如果没有立即找到数据库,我不知道你还需要什么,因为我以前从来没有这样做,也没有在这里进行测试设置检查这个案子。

当通过WINDOWS服务器上的mysql找到数据库时,从mysql cli提示符中查找数据库使用的编码等:

SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;

然后在LINUX服务器上创建一个具有相同名称和相同编码的新数据库来自MYSQL CLI:

create database <db-name> character set <charset> collate <collation>;

然后在CMD窗口的WINDOWS服务器上,执行mysqldump,这应该在Linux上看起来很熟悉:

mysqldump  <db-name>  >  <db-name>.sql

然后将转储复制到LINUX服务器并重播:

mysql  <db-name>  <  <db-name>.sql

之后您将不得不重新创建用户(如果您知道您的Web应用程序用于访问数据库的用户和密码,请使用这些凭据创建新用户并授予他对您数据库的完全访问权限。

如果您不再知道凭据,请创建一个任意用户,然后在Web应用程序的配置文件中更改数据库凭据。

如果您遇到问题,请检查您复制的文件的unix文件权限,以便mysql可以访问它们。

祝你好运,伙伴。