正在将数据库备份文件从 windows 的 xamp/mysql/data 复制到路径 /var/lib/mysql 中的 linux
Copying database backup files from xamp/mysql/data of windows to linux in path /var/lib/mysql
正在将数据库备份文件从 windows 的 xamp/mysql/data
复制到路径 /var/lib/mysql
中的 linux,但它只在 linux 的 phpmyadmin 中创建空数据库.
求大神帮我解决这个问题,我只有这些文件备份
最好的办法是-
第 1 步:通过 mysqldump-
从 windows 进行备份
mysqldump -uroot -proot123 -A > backup.sql
第二步:把这个备份移动到linux,你可以使用winscp工具。
第 3 步:现在将此备份恢复到 linux 机器。
mysql -uroot -proot123 < backup.sql
修改:
看起来你的数据库引擎是 myisam 并且你只是将 file/folder 从 window 复制到 linux,所以按照下面的方式授予权限 -
chown -R mysql.mysql /var/lib/mysql
首先在 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>;
然后在 WINDOWS 服务器上的 CMD window 中,做一个 mysqldump
在 windows 上看起来应该很熟悉,就像在 linux 上一样:
mysqldump <db-name> > <db-name>.sql
然后将转储复制到 LINUX 服务器并重播:
mysql <db-name> < <db-name>.sql
之后您必须重新创建一个用户(如果您知道您的 Web 应用程序使用哪个用户和密码访问数据库,请使用这些凭据创建一个新用户并授予他对您的数据库的完全访问权限。
如果您碰巧不知道凭据,请创建一个任意用户,然后在您的 Web 应用程序的配置文件中更改数据库凭据。
如果遇到问题,请检查您复制的文件的 unix 文件权限,以便 mysql 可以访问它们。
祝你好运,伙计。
正在将数据库备份文件从 windows 的 xamp/mysql/data
复制到路径 /var/lib/mysql
中的 linux,但它只在 linux 的 phpmyadmin 中创建空数据库.
求大神帮我解决这个问题,我只有这些文件备份
最好的办法是-
第 1 步:通过 mysqldump-
从 windows 进行备份mysqldump -uroot -proot123 -A > backup.sql
第二步:把这个备份移动到linux,你可以使用winscp工具。
第 3 步:现在将此备份恢复到 linux 机器。
mysql -uroot -proot123 < backup.sql
修改: 看起来你的数据库引擎是 myisam 并且你只是将 file/folder 从 window 复制到 linux,所以按照下面的方式授予权限 -
chown -R mysql.mysql /var/lib/mysql
首先在 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>;
然后在 WINDOWS 服务器上的 CMD window 中,做一个 mysqldump
在 windows 上看起来应该很熟悉,就像在 linux 上一样:
mysqldump <db-name> > <db-name>.sql
然后将转储复制到 LINUX 服务器并重播:
mysql <db-name> < <db-name>.sql
之后您必须重新创建一个用户(如果您知道您的 Web 应用程序使用哪个用户和密码访问数据库,请使用这些凭据创建一个新用户并授予他对您的数据库的完全访问权限。
如果您碰巧不知道凭据,请创建一个任意用户,然后在您的 Web 应用程序的配置文件中更改数据库凭据。
如果遇到问题,请检查您复制的文件的 unix 文件权限,以便 mysql 可以访问它们。
祝你好运,伙计。