I want to import a sql file of approx 12 mb. But its causing problem while loading. Is there any way to upload it without splitting the sql file ?
22 回答
尝试根据您的操作系统的口味从 mysql 控制台导入它。
mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}
或者如果它在远程服务器上,请使用 -h 标志来指定主机。
mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}
你必须做的3件事:
在php.ini
您的 php 安装中(注意:取决于您是否需要 CLI、apache 或 nginx,找到正确的 php.ini 进行操作)
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
或设置其他值。
如果您安装了 apache,则重新启动/重新加载apache;如果您使用 nginx,则为 nginx 重新启动/重新加载 php-fpm。
远程服务器?
也会增加max_execution_time
,因为上传文件需要时间。
NGINX 安装?
您将必须添加:client_max_body_size 912M;
在块/etc/nginx/nginx.conf
中http{...}
编辑位于 phpmyadmin 目录中的 config.inc.php 文件。就我而言,它位于C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php
.
找到上面的行并将$cfg['UploadDir']
其更新为$cfg['UploadDir'] = 'upload';
然后,在 phpmyadmin 目录中创建一个名为 'upload' 的目录(对我来说, at C:\wamp\apps\phpmyadmin3.2.0.1\upload\
)。
然后将您尝试导入的大型 SQL 文件放入新upload
目录中。现在,当您进入 phpmyadmin 控制台中的 db 导入页面时,您会注意到一个以前不存在的下拉菜单 - 它包含您刚刚创建的上传目录中的所有 sql 文件。您现在可以选择它并开始导入。
如果您没有在 Windows 上使用 WAMP,那么我相信您可以轻松地将其适应您的环境。
参考:http ://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/
针对 LINUX 用户的解决方案(使用 sudo 运行)
创建“上传”和“保存”目录:
mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save
然后编辑 phpmyadmin 的配置文件:
gedit /etc/phpmyadmin/config.inc.php
最后为“上传”和“保存”目录添加绝对路径:
$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';
现在,只需将文件放到/etc/phpmyadmin/upload
文件夹中,然后您就可以从 phpmyadmin 中选择它们。
希望这有帮助。
只需一行就完成了(确保 mysql 命令可作为全局命令使用,或者只需转到 mysql 安装文件夹并进入 bin 文件夹)
mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension
这里
u
代表用户p
代表密码D
代表数据库
---不要忘记在<
数据库名称后添加符号---
带有名称和扩展名的完整文件路径可以是
c:\folder_name\"folder name"\sql_file.sql
---如果您的文件夹和文件名包含空格而不是使用双引号将它们绑定---
提示和注意:您可以在之后写入密码,-p
但不建议这样做,因为它会显示给当时正在观看您屏幕的其他人,如果您不在那里写入,它会询问您何时按回车执行命令。
创建一个 zip 或 tar 文件并在 phpmyadmin 中上传就是这样..!
.sql
通过在文件中具有以下配置,我能够导入一个大httpd.conf
文件:
Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Require all granted
php_admin_value upload_max_filesize 128M
php_admin_value post_max_size 128M
php_admin_value max_execution_time 360
php_admin_value max_input_time 360
</Directory>
好的,您使用 PHPMyAdmin,但有时最好的方法是通过终端:
- 连接到数据库:(
mysql -h localhost -u root -p
为用户和数据库位置切换 root 和 localhost) - 从转储开始导入:
\. /path/to/your/file.sql
- 去喝杯咖啡,吹嘘自己,因为你使用终端。
就是这样。请记住,如果您在远程服务器中,则必须将 .sql 文件上传到某个文件夹。
我不明白为什么没有人提到最简单的方法....只需使用http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/拆分大文件, 然后执行 vie mySQL admin从具有结构的文件开始的单独生成的文件
为此,您必须编辑php.ini
文件,如果您使用的是 ubuntu 服务器,这是链接Upload large file in phpMyAdmin可能会对您有所帮助。
PHPmyadmin 也接受 gzip 格式的压缩文件,因此您可以 gzip 文件(如果没有,请使用7Zip )并上传压缩文件。由于它是一个文本文件,它将具有良好的压缩比。
我偶然发现了一篇文章,这对我来说效果最好
- 使用您喜欢的代码编辑器打开 phpmyadmin 目录中的 config.inc.php 文件。在您本地的 MAMP 环境中,它应该位于此处:
硬盘 » 应用程序 » MAMP » bin » config.inc.php
- 搜索该短语
$cfg[‘UploadDir’]
- 它看起来像这样:
$cfg['UploadDir'] = '';
- 将其更改为如下所示:
$cfg['UploadDir'] = 'upload';
然后,在该 phpmyadmin 目录中,创建一个新文件夹并将其命名为上传。
获取您尝试导入的大型 .sql 文件,并将其放入新的上传文件夹中。
现在,下次您将数据库导入 phpMyAdmin 时,您将在“要导入的文件”部分的标准浏览区域正下方看到一个新的下拉字段。
在 MAMP 中,您可以通过以下方式加载大文件:
在此目录 /MAMP/bin/phpMyAdmin/"folderName" 中创建一个新文件夹
然后编辑“/MAMP/bin/phpMyAdmin/config.inc.php”第 531 行:
$cfg['UploadDir']= 'folderName';
将您的 .sql 或 .csv 文件复制到此文件夹中。
现在您将在“PhpMyAdmin”中有另一个选项: 从 Web 服务器上传目录中选择 newFolder/:您可以选择您的文件并导入它。
您现在可以加载任何文件!
一种解决方案是使用命令行;
mysql -h yourhostname -u username -p databasename < yoursqlfile.sql
只需确保明确说明要导入的SQL文件的路径即可。
就我而言,我使用了这个;
mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql
瞧!你已准备好出发。
共享主机的答案。最好使用这个我刚刚用来将 300mb 数据库文件导入我的服务器的小脚本。该脚本称为大转储。
上传大文件的最佳方法不使用 phpmyadmin 。导致 phpmyadin 首先使用 php 上传类上传文件,然后执行导致其超时的大部分时间发生的 sql。
最好的方法是:进入 wamp 文件夹>bin>mysql>bin 目录然后写下这一行
mysql -u root -p listnames < latestdb.sql 这里 listnames 是数据库名称,首先请创建空数据库, latestdb.sql 是您的数据所在的 sql 文件名。
但一件重要的事情是您的数据库文件是否有 unicode 数据。您必须在任何一行之前打开您的 latestdb.sql 文件和一行。该行是:
设置名称 utf8; 然后你的命令模式运行这个脚本代码
我制作了一个 PHP 脚本,旨在导入由 phpmyadmin 生成的大型数据库转储。它叫做 PETMI,你可以在这里[project page] [gitlab page]下载它。它已经用 1GB 的数据库进行了测试。
更改您的服务器设置以允许大于 12 mb 的文件上传,您应该没问题。通常将服务器设置设置为 5 到 8 mb 用于文件上传。
/Applications/XAMPP/xamppfiles/etc/php.ini
首先找到这个位置->在记事本或崇高文本中打开php.ini文件然后在php.ini文本中找到这个“post_max_size,upload_max_filesize,memory_limit”并更改大小如下
post_max_size=450M
upload_max_filesize=450M
memory_limit=700M
注意:在执行此操作之前,请在 xampp 或 wamp 中停止 phpmyadmin 并执行上述方法,然后 startall(xampp 或 manager-osx)它将完美运行。然后你就可以在 phpmyadmin 中上传大文件了。谢谢
首先,将您的 mysql 数据库复制到本地磁盘 C:\ 以便轻松定位文件,然后打开命令提示符。
同时,导航到 mysql bin 文件夹,例如,如果您使用的是 xampp,请运行或键入下面的代码。
cd/ 这带你到本地磁盘指针
cd xampp 这带你到 xampp 文件夹
cd mysql 这带你到 mysql 文件夹
cd bin 这带你到 bin 文件夹
并运行下面的代码
mysql -u dbusername -p -D dbname < c:\yourdbtoupload.sql
这将提示输入密码,如果您不使用密码,请输入您的密码或单击输入按钮
- 在文本编辑器(如记事本)中打开您的 sql 文件
- 全选 -> 复制
- 转到 phpMyAdmin,选择您的数据库并转到 SQL 选项卡
- 将您复制的内容粘贴到剪贴板
- 它可能会弹出一个javascript错误,忽略它
- 执行