mysql - ماهي - نقل قاعدة بيانات sql server من جهاز الى اخر
كيفية استيراد ملف SQL باستخدام سطر الأوامر في MySQL؟ (20)
استيراد قاعدة بيانات
اذهب إلى محرك الأقراص:
command: d:
تسجيل الدخول إلى MySQL
command: c:\xampp\mysql\bin\mysql -u root -p
وسوف أطلب pwd. ادخال:
pwd
حدد قاعدة البيانات
use DbName;
تقديم اسم الملف
\.DbName.sql
لدي ملف .sql
مع تصدير من phpMyAdmin
. أريد استيراده إلى خادم مختلف باستخدام سطر الأوامر.
لدي تثبيت Windows Server 2008 R2. أنا وضعت الملف. .sql
على محرك الأقراص C ، وحاولت هذا الأمر
database_name < file.sql
لا يعمل أحصل على أخطاء في بناء الجملة.
- كيف يمكنني استيراد هذا الملف دون مشكلة؟
- هل أحتاج إلى إنشاء قاعدة بيانات أولاً؟
- افتح سطر الأوامر MySQL
- اكتب مسار دليل mysql bin الخاص بك واضغط على Enter
- قم بلصق ملف SQL الخاص بك داخل مجلد
bin
لخادم mysql. - إنشاء قاعدة بيانات في MySQL.
- استخدم قاعدة البيانات تلك حيث تريد استيراد ملف SQL.
- اكتب
source databasefilename.sql
و Enter - تحميل ملف 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/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
الاختلافات الرئيسية بالنسبة لي:
- يجب أن توجد قاعدة البيانات أولاً
- لا توجد مسافة بين
-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