mysql - ماهي - نقل قاعدة بيانات sql server من جهاز الى اخر




كيفية استيراد ملف SQL باستخدام سطر الأوامر في MySQL؟ (20)

لدي ملف .sql مع تصدير من phpMyAdmin . أريد استيراده إلى خادم مختلف باستخدام سطر الأوامر.

لدي تثبيت Windows Server 2008 R2. أنا وضعت الملف. .sql على محرك الأقراص C ، وحاولت هذا الأمر

database_name < file.sql

لا يعمل أحصل على أخطاء في بناء الجملة.

  • كيف يمكنني استيراد هذا الملف دون مشكلة؟
  • هل أحتاج إلى إنشاء قاعدة بيانات أولاً؟

استيراد قاعدة بيانات

  1. اذهب إلى محرك الأقراص:

    command: d:
    
  2. تسجيل الدخول إلى MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. وسوف أطلب pwd. ادخال:

    pwd
    
  4. حدد قاعدة البيانات

    use DbName;
    
  5. تقديم اسم الملف

    \.DbName.sql
    

  1. افتح سطر الأوامر MySQL
  2. اكتب مسار دليل mysql bin الخاص بك واضغط على Enter
  3. قم بلصق ملف SQL الخاص بك داخل مجلد bin لخادم mysql.
  4. إنشاء قاعدة بيانات في MySQL.
  5. استخدم قاعدة البيانات تلك حيث تريد استيراد ملف SQL.
  6. اكتب source databasefilename.sql و Enter
  7. تحميل ملف SQL بنجاح.

أعتقد أنه من الجدير بالذكر أنه يمكنك أيضًا تحميل ملف gzipped (مضغوط) مع zcat كما هو موضح أدناه:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

أنا أستخدم Windows 10 مع Powershell 5 ووجدت جميع الحلول "التي لا تشبه يونكس" تقريبًا بالنسبة لي.

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

أنا ينتهي باستخدام هذا الأمر.

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

وهو يعمل على أكمل وجه ، ونأمل أن يساعد.

الشكر ل @ 's answer .


اذهب إلى الدليل الذي يوجد به MySQL قابل للتنفيذ. -u لاسم المستخدم و -p للمطالبة بكلمة المرور:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

اذهب إلى الدليل حيث لديك MySQL.

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

أيضا لتفريغ جميع قواعد البيانات ، استخدم خيار -all-databases ، ولا تحتاج إلى تحديد اسم أي قواعد بيانات بعد الآن.

mysqldump -u username -ppassword –all-databases > dump.sql

أو يمكنك استخدام بعض عملاء واجهة المستخدم الرسومية مثل SQLyog للقيام بذلك.


الاستخدام الشائع لـ mysqldump هو عمل نسخة احتياطية من قاعدة بيانات كاملة:

shell> mysqldump db_name > backup-file.sql

يمكنك تحميل ملف التفريغ مرة أخرى إلى الخادم مثل هذا:

UNIX

shell> mysql db_name < backup-file.sql

الشيء نفسه في موجه أوامر Windows :

mysql -p -u[user] [database] < backup-file.sql

بوويرشيل

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

سطر الأوامر MySQL

mysql> use db_name;
mysql> source backup-file.sql;

الحل الذي عمل بالنسبة لي هو أدناه:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

تقديم بيانات الاعتماد على سطر الأوامر ليست فكرة جيدة. الإجابات المذكورة أعلاه رائعة ، ولكن إهمال لذكرها

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

حيث etc / myhost.cnf هو ملف يحتوي على المضيف ، والمستخدم ، وكلمة المرور ، وتجنب تعريض كلمة المرور على سطر الأوامر. هنا عينة ،

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

ظللت قيد التشغيل في مشكلة حيث لم يتم إنشاء قاعدة البيانات.

أصلحته هكذا

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql

في حين أن معظم الإجابات هنا فقط أذكر الأمر البسيط

mysql -u database_user -p <database_file.sql

اليوم من الشائع جدا أن قواعد البيانات والجداول لها utf8-collation حيث أن هذا الأمر غير كاف. بعد استخدام utf8-collation في الجداول التي تم تصديرها ، يلزم استخدام هذا الأمر:

mysql -u database_user -p --default-character-set = utf8 <database_file.sql

Surley this works for charsets other too، how to show the right notation can be viewed here:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

وذكر أحد التعليقات أيضا أنه إذا لم تكن قاعدة البيانات موجودة أبدا ، فإنه يتعين إنشاء قاعدة بيانات فارغة أولا. قد يكون هذا صحيحًا في بعض الحالات ، ولكنه يعتمد على ملف التصدير. إذا كان الملف المصدر يتضمن بالفعل أمر إنشاء قاعدة البيانات ، فلن يتم إنشاء قاعدة البيانات في خطوة منفصلة ، والتي قد تتسبب في حدوث خطأ أثناء الاستيراد. لذا عند الاستيراد ، من المستحسن إلقاء نظرة أولاً على الملف لمعرفة الأوامر المضمنة هناك ، وعند التصدير ، من المستحسن ملاحظة الإعدادات ، خاصة إذا كان الملف كبيرًا جدًا ويصعب قراءته في المحرر.

لا تزال هناك المزيد من المعلمات للأمر المدرجة والموضحة هنا:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

إذا كنت تستخدم إصدارًا آخر من قاعدة البيانات ، فجرّب البحث عن الإصدار المناسب من الدليل أيضًا. تشير الروابط المذكورة إلى MySQL الإصدار 5.7.


فيما يتعلق بالوقت المستغرق لاستيراد ملفات ضخمة: الأهم من ذلك ، يستغرق الأمر أكثر من مرة نظرًا لأن الإعداد الافتراضي لـ MySQL هو autocommit = true . يجب عليك تعيين ذلك قبل استيراد الملف الخاص بك ، ثم التحقق من كيفية عمل الاستيراد مثل جوهرة.

كل ما عليك فعله هو القيام بما يلي:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

لا تحتاج إلى تحديد اسم قاعدة البيانات في سطر الأوامر إذا كان الملف .sql يحتوي على CREATE DATABASE IF NOT EXISTS db_name USE db_name .

فقط تأكد من الاتصال بمستخدم لديه أذونات لإنشاء قاعدة البيانات ، في حالة عدم وجود قاعدة البيانات المذكورة في ملف .sql.


لاستيراد قاعدة بيانات واحدة ، استخدم الأمر التالي.

mysql -u username -p password dbname < dump.sql

لاستيراد تفريغ قاعدة بيانات متعددة ، استخدم الأمر التالي.

mysql -u username -p password < dump.sql

للحصول على معلومات كان لدي جذر افتراضي + بدون كلمة أساسية ، ولم يعمل مع جميع الإجابات المذكورة أعلاه.

  • أنا خلقت مستخدم جديد مع جميع الامتيازات وكلمة مرور. إنها تعمل.

  • -الكلمة الرئيسية دون SPACE.


محاولة:

mysql -u username -p database_name < file.sql

تحقق من خيارات الخلية .

ملاحظة -1: من الأفضل استخدام المسار الكامل من ملف file.sql SQL.

ملاحظة 2: استخدام -R و -R --triggers للحفاظ على إجراءات ومشغلات قاعدة البيانات الأصلية. لا يتم نسخها بشكل افتراضي.


وبالمثل https://.com/a/17666285/1888983
الاختلافات الرئيسية بالنسبة لي:

  1. يجب أن توجد قاعدة البيانات أولاً
  2. لا توجد مسافة بين -p وكلمة المرور
shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

تشغيل فيدورا 26 مع MariaDB.


يعمل الأمر التالي لي من سطر الأوامر (cmd) على Windows 7 على WAMP .

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql

الاستيراد في قاعدة البيانات: -

mysql -u username -p database_name </ file path / file_name.sql

تصدير من قاعدة البيانات: -

mysqldump -u username -p database_name> / file path / file_name.sql

بعد هذه الأوامر سوف تسأل عن كلمة السر الخاصة بك mysql


mysql --user=[user] --password=[password] [database] < news_ml_all.sql




import