لدي ملف .sql
مع تصدير من phpMyAdmin
. أريد استيراده إلى خادم آخر باستخدام سطر الأوامر.
لدي تثبيت Windows Server 2008 R2. لقد وضعت الملف .sql
علىمحرك الأقراص C، وحاولت هذا الأمر
database_name < file.sql
أنها لا تعمل أحصل على أخطاء في بناء الجملة.
محاولة:
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
) ، قبل أن تتمكن من الاستيراد ذلك.
الاستخدام الشائع لـ 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;
فيما يتعلق بالوقت المستغرق في استيراد الملفات الضخمة: الأهم من ذلك ، يستغرق المزيد من الوقت لأن الإعداد الافتراضي لـ MySQL هو autocommit = true
. يجب ضبط ذلك قبل استيراد الملف الخاص بك ، ثم تحقق من كيفية عمل الاستيراد مثل جوهرة.
تحتاج فقط إلى القيام بما يلي:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
من بين جميع الإجابات ، للمشكلة أعلاه ، هذا هو الأفضل.
mysql> use db_name;
mysql> source file_name.sql;
يمكننا استخدام هذا الأمر لاستيراد 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
bin
لخادم mysql.source databasefilename.sql
و Enterإذا كان لديك بالفعل قاعدة البيانات ، استخدم ما يلي لاستيراد الملف 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
، فاستخدم المسار النسبي الوارد أعلاه.
الحل الذي نجح لي هو أدناه:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
انتقل إلى الدليل الذي يوجد به ملف MySQL القابل للتنفيذ. -u
لاسم المستخدم و -p
للمطالبة بكلمة المرور:
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
لتفريغ قاعدة بيانات في ملف SQL ، استخدم الأمر التالي
mysqldump -u username -p database_name > database_name.sql
لاستيراد ملف SQL إلى قاعدة بيانات (تأكد من وجودك في نفس الدليل مثل ملف SQL أو توفير المسار الكامل للملف)
mysql -u username -p database_name < database_name.sql
أعتقد أنه من الجدير بالذكر أنه يمكنك أيضًا تحميل gzipped (مضغوط) ملف مع zcat
كما هو موضح أدناه:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
لاستيراد قاعدة بيانات واحدة ، استخدم الأمر التالي.
mysql -u username -p password dbname < dump.sql
لاستيراد مقالب قاعدة بيانات متعددة ، استخدم الأمر التالي.
mysql -u username -p password < dump.sql
أسهل طريقة للاستيراد إلى مخططك:
تسجيل الدخول إلى mysql والمسألة أدناه ذكر الأوامر.
mysql> use your_db_name;
mysql> source /opt/file.sql;
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
لاستيراد ملفات 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
لا تحتاج إلى تحديد اسم قاعدة البيانات في سطر الأوامر إذا كان الملف .sql يحتوي على عبارات CREATE DATABASE IF NOT EXISTS db_name
و USE db_name
.
فقط تأكد من أنك تتصل بمستخدم لديه أذونات إنشاء قاعدة البيانات ، إذا كانت قاعدة البيانات المذكورة في ملف .sql غير موجودة.
اذهب إلى القيادة:
command: d:
الخلية تسجيل الدخول
command: c:\xampp\mysql\bin\mysql -u root -p
سوف يسأل عن الأشخاص ذوي الإعاقة. ادخال:
pwd
حدد قاعدة البيانات
use DbName;
اكتب اسم الملف
\.DbName.sql
أضف الخيار --force
:
mysql -u username -p database_name --force < 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 للقيام بذلك.
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
الأمر التالي يعمل لي من سطر الأوامر (cmd) على Windows 7 على WAMP .
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
اعتقدت أنه يمكن أن يكون مفيدًا لأولئك الذين يستخدمون Mac OS X :
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
استبدل xampp
بـ mamp
أو خوادم الويب الأخرى.
في حين أن معظم الإجابات هنا فقط ذكر الأمر البسيط
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/mysql-command-options.html
إذا كنت تستخدم إصدار قاعدة بيانات آخر ، ففكر في البحث عن الإصدار المقابل من الدليل أيضًا. تشير الروابط المذكورة إلى MySQL الإصدار 5.7.
في بعض الأحيان يكون المنفذ المحدد وكذلك الخادم عنوان IP لقاعدة البيانات هذه مهمًا أيضًا ...
mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql
توفير بيانات الاعتماد في سطر الأوامر ليست فكرة جيدة. الإجابات المذكورة أعلاه كبيرة ، ولكن إهمال ذكرها
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
لأغراض النسخ الاحتياطي ، قم بإنشاء ملف 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
يمكنك تجربة هذا الاستعلام.
تصدير:
mysqldump -u username –-password=your_password database_name > file.sql
استيراد:
mysql -u username –-password=your_password database_name < file.sql
والتفاصيل التالية هذا الرابط:
على غرار https://stackoverflow.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
تشغيل Fedora 26 مع MariaDB.
للحصول على معلومات تلقيت فقط الجذر الافتراضي + بدون كلمة مرور ، لم ينجح الأمر مع جميع الإجابات أعلاه.
لقد أنشأت مستخدمًا جديدًا بكل الامتيازات وكلمة مرور. إنها تعمل.
-كلمة المرور دون الفضاء.
أنا أستخدم 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 راجع للشغل.
تساعد الخطوات التالية في تحميل 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
أدخل كلمة المرور وانتظر حتى يكتمل التحميل.
استيراد إلى قاعدة البيانات: -
mysql -u اسم المستخدم -p database_name </ file path/file_name.sql
تصدير من قاعدة البيانات: -
mysqldump -u اسم المستخدم -p database_name>/مسار الملف/file_name.sql
بعد هذه الأوامر سوف يطلب موجه كلمة مرور ماي
إذا كان استيراد البيانات إلى حاوية عامل ميناء ، استخدم الأمر التالي. اضبط المستخدم (-u) وقاعدة البيانات (-D) والمنفذ (-P) والمضيف (-h) ليناسب التكوين الخاص بك.
mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
إذا كنت تستخدم MAMP على Mac OS X ، فقد يكون ذلك مفيدًا:
/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql
MYSQL_USER هو الجذر بشكل افتراضي.
تصدير قواعد بيانات معينة:
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
يمكنك استخدام:
mysql -u<user> -p<pass> <db> < db.sql
مثال:
mysql -uroot -proot db < db.sql
وداعا!
لاستيراد قاعدة البيانات عبر المحطة
انتقل إلى المجلد حيث يوجد ملف sql
تشغيل أدناه الأمر
mysql -u database_user_name -p database_name < sql_file_name.sql
سوف يسأل عن كلمة المرور. أدخل كلمة مرور قاعدة البيانات. سوف يستغرق بضع ثوان لاستيراد البيانات في قاعدة البيانات.
فمثلا
قمت بتثبيت البرنامج على 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
ثم أدخل كلمة المرور ؟؟؟؟
إذا كان المجلد الخاص بك يحتوي على ملفات SQL متعددة ، وقمت بتثبيت Git Bash يمكنك استخدام هذا الأمر لاستيراد ملفات متعددة:
cd /my-project/data
cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
من ويندوز يمكنك استخدام الأمر أدناه لاستيراد البيانات من تفريغ sql
C:\Program Files\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql
حيث -u متبوعًا باسم المستخدم و -p متبوعًا بكلمة مرور Mysql. يمكن تخطي كلمة المرور في الأمر حيث يمكن إدخالها على الموجه.
إذا كنت تقوم بالاستيراد إلى خادم قاعدة البيانات المحلية ، يمكنك القيام بما يلي:
mysql -u database_user -p < database_file.sql
بالنسبة لخادم قاعدة البيانات عن بعد ، قم بما يلي:
mysql -u database_user -p -h remote_server_url < database_file.sql