it-swarm.dev

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

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

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

database_name < file.sql

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

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

محاولة:

mysql -u username -p database_name < file.sql

تحقق خيارات MySQL .

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

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

Note-3 قد تضطر إلى إنشاء قاعدة بيانات (فارغة) من mysql إذا لم تكن موجودة بالفعل ولا تحتوي SQL المصدرة على CREATE DATABASE (يتم تصديرها مع خيار --no-create-db أو -n) ، قبل أن تتمكن من الاستيراد ذلك.

3102
bansi

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

Shell> mysqldump db_name > backup-file.sql

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

يونيكس

Shell> mysql db_name < backup-file.sql

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

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

PowerShell

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

سطر الأوامر MySQL

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

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

تحتاج فقط إلى القيام بما يلي:

mysql> use db_name;

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

من بين جميع الإجابات ، للمشكلة أعلاه ، هذا هو الأفضل.

 mysql> use db_name;
 mysql> source file_name.sql;
99
Manoj Kumar

يمكننا استخدام هذا الأمر لاستيراد SQL من سطر الأوامر:

mysql -u username -p password db_name < file.sql

على سبيل المثال ، إذا كان اسم المستخدم هو root وكلمة المرور هي password. ولديك اسم قاعدة بيانات باسم bank وملف SQL هو bank.sql. ثم ، ببساطة تفعل مثل هذا:

mysql -u root -p password bank < bank.sql

تذكر مكان ملف SQL الخاص بك. إذا كان ملف SQL الخاص بك في المجلد/الدليل Desktop ، فانتقل إلى دليل سطح المكتب وأدخل الأمر كما يلي:

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

وإذا كان لديك في الدليل Project وملف SQL الخاص بك في الدليل Desktop. إذا كنت ترغب في الوصول إليها من دليل Project ، فيمكنك القيام بذلك على النحو التالي:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
64
Amrit Dhungana
  1. افتح سطر أوامر MySQL
  2. اكتب مسار دليل mysql bin الخاص بك واضغط Enter
  3. الصق ملف SQL الخاص بك داخل مجلد bin لخادم mysql.
  4. إنشاء قاعدة بيانات في MySQL.
  5. استخدم قاعدة البيانات تلك حيث تريد استيراد ملف SQL.
  6. اكتب source databasefilename.sql و Enter
  7. تحميل ملف SQL الخاص بك بنجاح.
57
user4412947

إذا كان لديك بالفعل قاعدة البيانات ، استخدم ما يلي لاستيراد الملف dump أو sql

mysql -u username -p database_name < file.sql

إذا لم تكن بحاجة إلى إنشاء قاعدة البيانات ذات الصلة (فارغة) في MySQL ، فقم أولاً بتسجيل الدخول إلى وحدة التحكم MySQL عن طريق تشغيل الأمر التالي في المحطة الطرفية أو في cmd

mysql -u userName -p;

وعندما يطلب منك تقديم كلمة المرور.

ثم قم بإنشاء قاعدة بيانات واستخدامها

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

ثم قم باستيراد الملف sql أو الملف dump إلى قاعدة البيانات منه

mysql> source pathToYourSQLFile;

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

46
Kasun Siyambalapitiya

الحل الذي نجح لي هو أدناه:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
43
Shiks

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

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

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

mysqldump -u username -p database_name > database_name.sql

لاستيراد ملف SQL إلى قاعدة بيانات (تأكد من وجودك في نفس الدليل مثل ملف SQL أو توفير المسار الكامل للملف)

mysql -u username -p database_name < database_name.sql
26
Adeleke Akinade

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

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

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

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

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

mysql -u username -p password < dump.sql
25
Leopathu

أسهل طريقة للاستيراد إلى مخططك:

تسجيل الدخول إلى mysql والمسألة أدناه ذكر الأوامر.

mysql> use your_db_name;

mysql> source /opt/file.sql;
23
Ammad
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
16
user3546602

لاستيراد ملفات SQL متعددة في وقت واحد ، استخدم هذا:

# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

للاستيراد البسيط:

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

ل WAMP :

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

ل XAMPP:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
14
Abdul Rehman Janjua

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

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

12
Reuben

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

  1. اذهب إلى القيادة:

    command: d:
    
  2. الخلية تسجيل الدخول

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. سوف يسأل عن الأشخاص ذوي الإعاقة. ادخال:

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

    use DbName;
    
  5. اكتب اسم الملف

    \.DbName.sql
    
11
Pritam Chaudhari

أضف الخيار --force :

mysql -u username -p database_name --force < file.sql
9
ktaria

انتقل إلى الدليل حيث لديك MySQL.

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

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

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

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

8
Sathish D
mysql -u root -p password -D database_name << import.sql

استخدم مساعدة mysql للحصول على التفاصيل mysql --help

أعتقد أن هذه ستكون خيارات مفيدة في سياقنا

[~]$ mysql --help
mysql  Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using  EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.                                                                                                                                         
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --bind-address=name IP address to bind to.
  -D, --database=name Database to use.
  --delimiter=name    Delimiter to be used.
  --default-character-set=name Set the default character set.
  -f, --force         Continue even if we get an SQL error.
  -p, --password[=name] Password to use when connecting to server.
  -h, --Host=name     Connect to Host.
  -P, --port=#        Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -s, --silent        Be more silent. Print results with a tab as separator, each row on new line.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.

ما هو متعة ، إذا كنا نستورد قاعدة بيانات كبيرة وليس لدينا شريط التقدم. استخدم "عارض الأنابيب" وانظر نقل البيانات عبر الأنبوب

لنظام التشغيل Mac ، brew install pv. بالنسبة لـ Debian/Ubuntu ، apt-get install pv. غيرها ، راجع http://www.ivarch.com/programs/pv.shtml

pv import.sql | mysql -u root -p password -D database_name

1.45GiB 1:50:07 [339.0KiB/s]   [=============>      ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s]     [=============>      ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s]     [=============>      ] 14% ETA 11:05:36
8
Siva Praveen

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

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

اعتقدت أنه يمكن أن يكون مفيدًا لأولئك الذين يستخدمون Mac OS X :

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

استبدل xampp بـ mamp أو خوادم الويب الأخرى.

7
Giri

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

mysql -u database_user -p [db_name] <database_file.sql

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

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

Surley هذا يعمل مع مجموعات الأحرف الأخرى أيضًا ، كيف يمكن إظهار الرمز الصحيح هنا:

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

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

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

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

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

6
David

في بعض الأحيان يكون المنفذ المحدد وكذلك الخادم عنوان IP لقاعدة البيانات هذه مهمًا أيضًا ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
JohnSharath

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

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

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

[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
5
ChuckCottrill

ظللت أواجه المشكلة حيث لم يتم إنشاء قاعدة البيانات.

أنا ثابتة عليه مثل هذا

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5
David Silva Smith

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

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
5
user3728517

يمكنك تجربة هذا الاستعلام.

تصدير:

mysqldump -u username –-password=your_password database_name > file.sql

استيراد:

mysql -u username –-password=your_password database_name < file.sql

والتفاصيل التالية هذا الرابط:

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/

5
Md Shariful Islam

على غرار https://stackoverflow.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

تشغيل Fedora 26 مع MariaDB.

4
jozxyqk

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

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

  • -كلمة المرور دون الفضاء.

4
Paul Leclerc

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

> 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]

ويعمل تماما ، ونأمل أن يساعد.

بفضل @ Francesco Casula 's answer راجع للشغل.

4
Fery Wardiyanto

تساعد الخطوات التالية في تحميل file.sql إلى قاعدة بيانات MySQL.

الخطوة 1: تحميل file.sql.Zip إلى أي دليل وفك الضغط هناك
ملاحظة : Sudo apt-get install unzip: Sudo apt-get unzip file.sql.Zip
الخطوة 2: انتقل الآن إلى هذا الدليل. مثال: cd /var/www/html

الخطوة 3: mysql -u username -p database-name < file.sql
أدخل كلمة المرور وانتظر حتى يكتمل التحميل.

4
Ramesh Sinha

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

mysql -u اسم المستخدم -p database_name </ file path/file_name.sql

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

mysqldump -u اسم المستخدم -p database_name>/مسار الملف/file_name.sql

بعد هذه الأوامر سوف يطلب موجه كلمة مرور ماي

3
NeeruSingh

إذا كان استيراد البيانات إلى حاوية عامل ميناء ، استخدم الأمر التالي. اضبط المستخدم (-u) وقاعدة البيانات (-D) والمنفذ (-P) والمضيف (-h) ليناسب التكوين الخاص بك.

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
2
Hamfri

إذا كنت تستخدم MAMP على Mac OS X ، فقد يكون ذلك مفيدًا:

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USER هو الجذر بشكل افتراضي.

1
NicO

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

 djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql

سيؤدي ذلك إلى تصدير قواعد بيانات CCR و KIT ...

استيراد جميع قواعد البيانات التي تم تصديرها إلى مثيل MySQL معين (يجب أن تكون مكان ملف التفريغ الخاص بك):

  djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
1
Musa

يمكنك استخدام:

mysql -u<user> -p<pass> <db> < db.sql

مثال:

mysql -uroot -proot db < db.sql

وداعا!

1
Rafael Andrs Cspedes Basterio

لاستيراد قاعدة البيانات عبر المحطة

انتقل إلى المجلد حيث يوجد ملف sql

تشغيل أدناه الأمر

mysql -u database_user_name -p database_name < sql_file_name.sql

سوف يسأل عن كلمة المرور. أدخل كلمة مرور قاعدة البيانات. سوف يستغرق بضع ثوان لاستيراد البيانات في قاعدة البيانات.

1
Dev Semicolon

فمثلا

قمت بتثبيت البرنامج على C:\xampp\mysql\bin وملفي في العنوان C:\Users\file.sql

فقط قم بتعيين username و database_name

ملاحظة: تحتاج أولاً إلى إنشاء قاعدة البيانات (database_name) يدويًا

قم بتشغيل هذا الأمر:

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

ثم أدخل كلمة المرور ؟؟؟؟

1
Mahdi Bashirpour

إذا كان المجلد الخاص بك يحتوي على ملفات SQL متعددة ، وقمت بتثبيت Git Bash يمكنك استخدام هذا الأمر لاستيراد ملفات متعددة:

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1
o0omycomputero0o

من ويندوز يمكنك استخدام الأمر أدناه لاستيراد البيانات من تفريغ sql

C:\Program Files\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql

حيث -u متبوعًا باسم المستخدم و -p متبوعًا بكلمة مرور Mysql. يمكن تخطي كلمة المرور في الأمر حيث يمكن إدخالها على الموجه.

1
Ripudaman Singh

إذا كنت تقوم بالاستيراد إلى خادم قاعدة البيانات المحلية ، يمكنك القيام بما يلي:

mysql -u database_user -p < database_file.sql

بالنسبة لخادم قاعدة البيانات عن بعد ، قم بما يلي:

mysql -u database_user -p -h remote_server_url < database_file.sql
0
Edgencio Da Calista