it-swarm.asia

استيراد ملف SQL كبير phpmyadmin

أحاول استيراد ملف SQL هذا في phpmyadmin وحصلت على هذه الرسالة

#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 
'<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1

ماذا أفعل للقيام بهذا الاستيراد؟

12
grant tailor

بافتراض أنه لا يمكنك زيادة حجم الذاكرة ، فهناك خياران.

  • إذا لم تكن على دراية بسطر الأوامر وتريد حقًا الالتزام باستيراد نمط واجهة المستخدم الرسومية ، فيمكنك استخدام BigDump ( http://www.ozerov.de/bigdump/ ). لقد استخدمتها مرة واحدة ولكن منذ فترة. من ما أتذكره ، ستقوم بتنزيل ملف باسم bigdump.php (مع بعض الإرشادات) ووضعه على خادم الويب الخاص بك في الدليل مع ملف تفريغ MySQL DB وهو كبير جدًا بحيث لا يمكن استيراده عبر PHPMYADMIN. ثم انتقل إليه باستخدام متصفحك - شيء مثل http://your-website.com/bigdump.php .

  • إذا كنت معتادًا على سطر الأوامر وتستخدم نظامًا يستند إلى Linux ، فيمكنك استخدام رمز مثل هذا:

    mysql -u USERNAME -p DATABASENAME <FILENAME.sql

ستحتاج قاعدة البيانات والمستخدم (مع امتيازات لقاعدة البيانات) إلى الوجود قبل تشغيل هذا الأمر. ملاحظة قمت بنسخ الأمر أعلاه من مصدر آخر. أقوم دائمًا بمقالب واستعادة مثل هذا: DUMP: mysqldump -u DB_USER -h DB_Host -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz استعادة: gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME

  • أخيرًا ، والأكثر إيلامًا ، يمكنك اختيار تفريغ طاولات فردية أو مجموعات من الجداول في مقالب صغيرة بما فيه الكفاية. ثم قم باستعادة هذه المقالب الفردية واحدًا تلو الآخر عبر PHPMYADMIN.

تعليمات FTP & RESTORE:

قم بتنزيل FileZilla هنا: http://filezilla-project.org/download.php؟type=client

عادة يمكنك FTP في خادمك (خاصة مضيف مشترك) باستخدام نفس تسجيل الدخول وكلمة المرور التي تستخدمها لـ SSH (تسجيل الدخول إلى سطر الأوامر). فقط تأكد من إعداد الاتصال بخادمك بشكل صحيح في FileZilla.

بمجرد الاتصال ، من المحتمل أن يكون المسار الافتراضي هو مجلد $ HOME (على أجهزة nix). إذا كنت لا تخطط للقيام بالكثير من FTPing ، فقم فقط بتفريغ ما تريده هناك. يمكنك دائمًا نقله من سطر الأوامر.

إذا قمت بفتح ملف تفريغ MySQL في مجلد $ HOME ، فإن الأمر RESTORE الخاص بقاعدة بيانات باسم mydb وملف تفريغ db باسم mydb.sql.gz (في مجلد $ HOME) سيكون:

gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb

حيث ستحتاج بوضوح إلى تغيير قيم DB_USER و DB_PASSWORD إلى المستخدم وكلمة المرور اللذين تعدهما لقاعدة البيانات.

تذكر:

  • يجب أن يكون DB موجودًا بالفعل (ولكن يكون فارغًا) قبل تنفيذ الأمر RESTORE
  • يجب إعداد DB_USER و DB_PASSWORD لقاعدة البيانات قبل الأمر RESTORE (يمكنك القيام بذلك من PHPMYADMIN - علامة التبويب الامتيازات)
  • عند إعداد DB_USER من PHPMYADMIN ، فسيتم السماح فقط لـ DB_USER بالوصول إلى قاعدة البيانات من المضيف المحلي (الخادم الذي تتم استضافة DB عليه). أفترض أن هذا جيد لمنح موقفك. عندما تصل إلى DUMPs و RESTORE الأكثر تقدمًا ، قد ترغب في القيام بذلك من جهاز آخر تمامًا ليس صعبًا ولكنه يتطلب توفير المزيد من المعلومات و DB_USER مع الامتيازات المناسبة.

FTP DB واستعادته ... خطوة بخطوة

  1. حدد موقع ملف تفريغ MySQL مضغوط على سطح المكتب (مثال: C:\Web\DB\Dumps\mydb.sql.Zip)
  2. قم بتحميل وتثبيت FileZilla
  3. في FileZilla ، انتقل إلى File-> Site Manager وانقر فوق الزر New Site (الربع الأيسر السفلي من GUI). قم بتعيين المضيف إلى مجال (مثال: dest.com) موجود على خادم DESTINATION. قم بتعيين بروتوكول إلى FTP أو SFTP (يعتمد هذا على الاستضافة ، اسألهم). قم بتعيين المستخدم وكلمة المرور (مثال: المستخدم = منحة ، كلمة المرور = كلمة مرور المنحة) - إذا كان بروتوكول FTP هو SFTP ، فيجب أن تعمل أي مجموعة من بيانات اعتماد تسجيل الدخول إلى SSH.
  4. (في FileZilla) انقر فوق اتصال (الزر الأيسر السفلي)
  5. (في FileZilla) بمجرد الاتصال بالخادم البعيد (يجب أن يكون خادم DESTINATION) ، استخدم الجانب الأيسر من FileZilla للانتقال إلى الدليل الذي يوجد فيه ملف التفريغ الموجود في الخطوة 1. (مسار الجهاز المحلي في أقصى اليسار ، في منتصف الطريق تقريبًا ويطلق عليه اسم الموقع المحلي: في مثالنا ، سيظهر مربع النص بجوار الموقع المحلي: C:\Web\DB\Dumps.)
  6. (في FileZilla) حدد موقع الموقع البعيد: تسمية مباشرة إلى يمين الموقع المحلي :.
  7. (في FileZilla) لا يوجد سبب تقني لا يمكنك وضع DB DUMP في المجلد الذي يفتحه FileZilla. من المحتمل أن يكون الإعداد الافتراضي هو دليل $ HOME الخاص بك. إذا لم يكن لديك أي سبب لوضع DB Dump في دليل معين - مثل أغراضك التنظيمية - فاترك المسار على الموقع البعيد وحده. اكتب هذا المسار (مثال Linux:/usr/Grant).
  8. (في FileZilla) حدد موقع الملف على جهازك المحلي في النصف الأيسر من FileZilla أسفل الشجرة المعروضة أسفل الموقع المحلي: التسمية التي وجدتها في الخطوة 5. انقر نقرًا مزدوجًا على هذا الملف وسيقوم FileZilla بنقله إلى موقعك البعيد.
  9. ضمن PHPMYADMIN على خادم DESTINATION ، أنشئ قاعدة بيانات جديدة (اكتب mydb في مربع نص إنشاء قاعدة بيانات جديدة وانقر على الزر إنشاء).
  10. (في PHPMYADMIN) اختر mydb من القائمة على اليسار.
  11. (في PHPMYADMIN) انقر على علامة التبويب الامتيازات (أعلى اليمين). بمجرد الوصول إلى هذه الصفحة ، انقر فوق إضافة مستخدم جديد.
  12. (في PHPMYADMIN-> امتيازات-> إضافة مستخدم جديد) قدم اسم مستخدم (مثال: mydb_grant) وكلمة مرور (مثال: mydb_password). في القائمة المنسدلة Host ، اختر Local. تأكد من تحديد زر الاختيار بجوار "منح جميع الامتيازات في قاعدة البيانات". ثم انقر فوق Go (أسفل يمين الشاشة).
  13. SSH في خادم DESTINATION الخاص بك.
  14. (في طرف SSH الخاص بك) انتقل إلى الدليل الذي كتبته في الخطوة 7. باستخدام أمر مثل - cd $HOME أو cd /usr/grant. (على أجهزة Linux ، يعد $ HOME متغير بيئة يساوي شيئًا مثل/usr/Grant.)
  15. (في طرف SSH الخاص بك) قم بتنفيذ الأمر التالي: gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb (لا توجد مسافة بين -p وكلمة المرور لأن هذه هي الطريقة التي يجب أن تكون بها ، وهذا ليس خطأ مطبعي).

بمجرد اكتمال هذا الأمر الأخير ، تم استعادة قاعدة البيانات الخاصة بك. لا أوصي باستخدام مستخدم DB وكلمة المرور التي قدمتها ببساطة استبدالها بخيارات أكثر أمانًا خاصة بك.

DUMP و RESTORE على خوادم مختلفة بدون FTP

إذا كنت ترغب في تخطي ملفات FTP ولا تمانع في إعادة DUMP ، فيمكنك القيام بذلك بهذه الطريقة:

  1. قم بتسجيل الدخول إلى خادم DESTINATION (حيث تريد أن يقيم DB - سوف نسميه الوجهة.com)
  2. قم بإنشاء قاعدة البيانات والمستخدم والامتيازات المناسبة كما هو مذكور أعلاه على خادم DESTINATION
  3. تأكد من أن الامتيازات الموجودة على خادم SOURCE تسمح لـ SOURCE_DB_USER بالوصول إلى قاعدة البيانات عن بُعد - إما السماح بالوصول من dest.com أو من٪ (٪ - الجميع وفي كل مكان إذا كان لديهم اسم المستخدم وكلمة المرور الصحيحين)
  4. عند تشغيل خادم DESTINATION: mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz حيث source.com هو خادم SOURCE (حيث يوجد DB حاليًا)
  5. ثم شغّل (على خادم DESTINATION): gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb

يجب أن يكون هذا كل ما عليك القيام به لنقل قاعدة البيانات من خادم إلى آخر. إن التحذيرات هي أنني فعلت هذا من أي وقت مضى على بلدي Ubuntu المخصص (مع LAMP القياسي) وخوادم Dreamhost's VPS (التي أعتقد أنها تعمل على CentOS ولكن قد أكون مخطئًا).

12
gabe

تستطيع:

  • زيادة memory_limit
  • زيادة post_max_size
  • زيادة max_execution_time
  • يجب إعادة تشغيل Apache بعد القيام بكل هذا.
  • أو استخدم تفريغ كبير
3
Salman

هل ملف SQL الخاص بك مضغوط؟ لقد واجهت هذه المشكلة مع ملف sql مضغوط 6 ميغا بايت. لقد فك ضغطه إلى ملف sql غير مضغوط 53 ميغابايت وعملت. يجب أن يستهلك فك ضغط ملف التفريغ قيد التشغيل كل الذاكرة.

1
Jeremy

إذا كان حجم قاعدة بياناتك أكثر من 128 ميجابايت ، فقم بتقسيم قاعدة البيانات إلى أجزاء.

استخدم SQL Dump Splitter البرمجيات

SQL Dump Splitter هو تطبيق بحجم 430 كيلوبايت يمنح التحكم الكامل في تقسيم قواعد البيانات الضخمة إلى ملفات SQL أصغر بسهولة. مع SQL Dump Splitter يمكنك:

  • اختر حجم كل قطعة
  • اختيار تخطي التعليقات (لتقليل حجم قاعدة البيانات)
  • أتمتة النشاط.
0
Sumit Bijvani

إذا كان لديك وصول ssh إلى خادم باستخدام mysql ، يمكنك وضع ملف مع تفريغ mysql في مكان ما ، فأدخل وحدة تحكم mysql:

mysql -u myUser myDatabase

أو إذا كان خادم mysql في مكان آخر غير localhost ويسمح بالاتصالات ليس فقط من localhost من:

mysql -u myUser -h mysql.example.com myDatabase

من سيُطلب منك كلمة المرور لمستخدم الخلية الخاص بك. أنت الآن في وحدة تحكم الخلية. هنا يمكنك الكتابة

source ~/mydump.sql;

سترى كيف سيتم تنفيذ الأوامر من التفريغ الخاص بك.

في هذه الطريقة ، لا تهتم بأي حدود لذاكرة php.

0
yas375