将数据库备份文件从xamp / mysql / windows的数据复制到路径/ var / lib / mysql中的linux,但它在linux的phpmyadmin中只创建空数据库,请有人帮我解决这个问题,我有只有这些文件与我一起备份
答案 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可以访问它们。
祝你好运,伙伴。