我想导入大约12 MB的sql文件。但它在加载时造成问题。有没有办法上传它而不拆分sql文件?
答案 0 :(得分:80)
尝试根据操作系统的喜好从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}
答案 1 :(得分:55)
你需要做的3件事:
在您的php安装的php.ini
中(注意:取决于您是否需要CLI,apache或nginx,找到正确的php.ini进行操作)
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
或设置其他值。
重新启动/重新加载 apache如果您安装了apache,或者如果您使用nginx则使用php-fpm for nginx。
远程服务器?
也会增加max_execution_time
,因为上传文件需要时间。
NGINX安装?
您必须在client_max_body_size 912M;
/etc/nginx/nginx.conf
块中添加:http{...}
答案 2 :(得分:15)
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中选择它们。
希望得到这个帮助。
答案 3 :(得分:12)
只需一行即可完成(确保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
之后写下密码,但不建议这样做,因为它会显示给当时正在观看您屏幕的其他人,如果您不在那里写,它会在什么时候询问您你将按Enter键执行命令。
答案 4 :(得分:6)
我可以通过在.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>
答案 5 :(得分:6)
创建一个zip或tar文件,并在phpmyadmin中上传,这就是它。!
答案 6 :(得分:3)
您必须编辑php.ini文件。更改以下upload_max_filesize
post_max_size
以适应您的文件大小。
尝试运行phpinfo()
以查看其当前值。如果您无权直接更改php.ini文件,请尝试ini_set()
如果这也不是一个选项,您可能想尝试bigdump。
答案 7 :(得分:2)
为此您必须编辑php.ini
文件,如果您使用的是ubuntu服务器,那么链接Logback可能对您有帮助。
答案 8 :(得分:1)
我不明白为什么没有人提到最简单的方法....只需用http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/拆分大文件 并且在执行vie mySQL之后,从具有Structure
的文件开始生成分离的生成文件答案 9 :(得分:1)
好的,你使用PHPMyAdmin,但有时最好的方法是通过终端:
mysql -h localhost -u root -p
(用户和数据库位置的交换机root和localhost)\. /path/to/your/file.sql
就是这样。请记住,如果您在远程服务器中,则必须将.sql文件上载到某个文件夹。
答案 10 :(得分:0)
上传大文件的最佳方法是不使用phpmyadmin。导致phpmyadin首先使用php上传类上传文件,然后执行导致大部分时间超时的sql。
最好的方法是: 输入wamp文件夹&gt; bin&gt; mysql&gt; bin dirrectory然后写下这一行
mysql -u root -p listnames&lt; latestdb.sql 强> 这里listnames是数据库名称,请先创建空数据库 并且latestdb.sql是您的数据存在的sql文件名。
但重要的是,如果您的数据库文件包含unicode数据。您必须在任何行之前打开您的latestdb.sql文件和一行。这条线是:
SET NAMES utf8; 然后你的命令模式运行这个脚本代码
答案 11 :(得分:0)
更改您的服务器设置以允许大于12 MB的文件上传,您应该没问题。 通常,服务器设置设置为5到8 MB,用于文件上传。
答案 12 :(得分:0)
我偶然发现了一篇文章,这对我来说效果最好
硬盘»应用程序»MAMP»bin»config.inc.php
$cfg[‘UploadDir’]
- 它看起来像这样: $cfg['UploadDir'] = '';
$cfg['UploadDir'] = 'upload';
然后,在该phpmyadmin目录中,创建一个新文件夹&amp;将其命名为上传。
获取您尝试导入的大型.sql文件,并将其放入新的上传文件夹中。
现在,下次您将数据库导入phpMyAdmin时,您会在“要导入的文件”部分的标准浏览区域下方看到一个新的下拉字段。
答案 13 :(得分:0)
答案 14 :(得分:0)
在MAMP中,您可以通过以下方式加载大文件:
在此目录中创建一个新文件夹 / MAMP / bin / phpMyAdmin /“ folderName”
,然后编辑“ /MAMP/bin/phpMyAdmin/config.inc.php”第531行:
$cfg['UploadDir']= 'folderName';
将.sql或.csv文件复制到此文件夹中。
现在,您将在“ PhpMyAdmin”中拥有另一个选项:从 Web服务器上载目录newFolder /:您可以选择文件并导入 它。
您现在可以加载任何文件!
答案 15 :(得分:0)
我制作了一个PHP脚本,该脚本旨在导入由phpmyadmin生成的大型数据库转储。它称为PETMI,您可以在[project page] [gitlab page]处下载。它已经过1GB数据库的测试。
答案 16 :(得分:0)
PHPmyadmin还接受gzip格式的压缩文件,因此您可以gzip文件(如果没有,请使用7Zip)并上传压缩文件。由于它是文本文件,因此具有良好的压缩率。
答案 17 :(得分:-1)
共享托管的答案。最好使用我刚才用来将300mb DB文件导入服务器的这个小脚本。该脚本称为Big Dump。
provides a script to import large DB's on resource-limited servers
答案 18 :(得分:-1)
一种解决方案是使用命令行;
mysql -h yourhostname -u username -p databasename < yoursqlfile.sql
只需确保明确说明要导入的 SQL 文件的路径。
就我而言,我使用了它;
mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql
Voila!你很好。