将网站从共享 cPanel 迁移到非托管 Ubuntu 22.04 vps,但无法成功导入 sql 文件

将网站从共享 cPanel 迁移到非托管 Ubuntu 22.04 vps,但无法成功导入 sql 文件

一周前,我从 Hostinger 获得了一个非托管 VPS,并试图在服务器上托管一些网站。在这里我不得不说,我对带有 FASTPANEL 的 Ubuntu 22.04 还很陌生。

我已将旧服务器中的文件和数据库迁移到新服务器,但有一个 SQL 文件除外。旧服务器的规格如下:

旧服务器

我尝试将其中一个网站的 SQL 文件导入 phpMyAdmin,但没有成功。我相信这不是文件大小的问题。我成功导入了一个几乎相同的网站(使用不同的语言)的较大文件。新服务器的规格如下:

新服务器

导入时phpMyAdmin抛出的错误是:

Error

Static analysis:

2 errors were found during the analysis.

A symbol name was expected! (near ")" at position 206)
At least one column definition was expected. (near ")" at position 206)
SQL query: Copy

-- -------------------------------------------------------- -- -- Stand-in structure for view `m6K_wsm_dateWiseBounceRate` -- (See below for the actual view) -- CREATE TABLE `m6K_wsm_dateWiseBounceRate` ( );

MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 8

我认为上述各行没有错误。

我还尝试通过 Hostinger 浏览器终端导入它:

  1. cd /var/www/fastuser/data/www/en.beentee.net
  2. mysql -u beentee -f -p enbeentee < mgls_enbeent.sql

Hostinger浏览器终端抛出的错误是:

浏览器终端错误

我甚至尝试使用以下命令为 phpMyAdmin 创建一个上传文件夹,但我仍然不知道是否可以通过这种方式导入文件:

sudo find / -type d  -name phpmyadmin

mkdir -p /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/upload
mkdir -p /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/save
chmod a+w /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/upload
chmod a+w /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/save

gedit /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/config.inc.php

cd /usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin
sudo nano config.inc.php

但最后两个命令不起作用:

$cfg['UploadDir'] = '/usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/upload';
$cfg['SaveDir'] = '/usr/share/fastpanel2-phpmyadmin/vendor/phpmyadmin/save';

kos 的回复:

您从 MariaDB 切换到 MySQL;它们大多兼容,但不能完全替代对方;请发布 sed -n '2496323,2496333p' </path/to/problematic/sql/file 的输出

毫克/升:

请查看以下输出:

sed -n '2496323,2496333p' </var/www/fastuser/data/www/en.beentee.net/mgls_enbeent.sql

输出

kos 的回复:

好吧,第 2496323 行和第 2496324 行构成了一个空表的定义,这在 MySQL 中是无效的。我不确定这在 MariaDB 中意味着什么。您可以尝试删除该表定义(sed '2496323,2496324d' </path/to/problematic/sql/file >/path/to/new/file -> 这将创建一个新文件,然后您必须导入该文件),但是,我不确定这是否意味着应用程序正在使用数据库。也许您应该尝试看看 MariaDB 是否允许完全兼容 MySQL 的导出选项,然后再次导出数据库。

毫克/升:

我将首先尝试导出兼容的文件。请帮我从此下拉菜单中选择一两个:

下拉式菜单

kos 的回复:

最高兼容 MySQL 版本似乎是 4... 这是史前的。我会尝试一下,除非您第一次已经这样做了。

毫克/升:

我能够使用兼容模式将错误减少到一个错误:

使用 DB2

毫克/升:

然后,我用数据库清理器检查了表格。你说得对。表格是空的。我从导出中排除了表格,并成功导入了生成的 sql 文件。然后等待网站传播。谢谢你的帮助!

相关内容