run - mysql workbench import sql




如何在MySQL中使用命令行導入SQL文件? (20)

導入數據庫

  1. 去驅動器:

    command: d:
    
  2. MySQL登錄

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. 它會要求pwd。 輸入它:

    pwd
    
  4. 選擇數據庫

    use DbName;
    
  5. 提供文件名稱

    \.DbName.sql
    

我有一個從phpMyAdmin導出的.sql文件。 我想使用命令行將其導入到不同的服務器。

我有一個Windows Server 2008 R2安裝。 我將.sql文件放在C盤上 ,然後我嘗試了這個命令

database_name < file.sql

它不工作我得到語法錯誤。

  • 我怎樣才能導入這個文件沒有問題?
  • 我需要先創建一個數據庫嗎?

  1. 打開MySQL命令行
  2. 輸入 mysql bin目錄的路徑,然後按Enter鍵
  3. 將你的SQL文件粘貼到mysql服務器的bin文件夾中。
  4. 在MySQL中創建一個數據庫。
  5. 在要導入SQL文件的位置使用該特定數據庫。
  6. 輸入 source databasefilename.sqlEnter
  7. 您的SQL文件已成功上傳。

導入數據庫: -

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

從數據庫導出: -

mysqldump -u用戶名-p數據庫名稱> /文件路徑/ file_name.sql

在這些命令提示符後會詢問你的mysql密碼


以下命令適用於WAMP上Windows 7上的命令行(cmd)。

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

在命令行上提供憑據不是一個好主意。 上述答案很好,但忽略了

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

其中etc / myhost.cnf是一個包含主機,用戶,密碼的文件,並且您可以避免在命令行上顯示密碼。 這裡是一個示例,

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

在所有答案中,對於上述問題,這是最好的答案:

 mysql> use db_name;
 mysql> source file_name.sql;

如果您已經有數據庫使用以下內容導入dumpsql文件

mysql -u username -p database_name < file.sql

如果你不需要在MySQL中創建相關數據庫(空),那麼首先通過在終端或cmd中運行以下命令來登錄到MySQL控制台

mysql -u userName -p;

並在出現提示時提供密碼。

接下來創建一個數據庫並使用它

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

然後將sqldump文件從數據庫導入到數據庫中

mysql> source pathToYourSQLFile;

注意:如果您的終端不在dumpsql文件所在的位置,請使用上面的相對路徑。


我一直在遇到未創建​​數據庫的問題。

我是這樣修復的

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

我在Powershell 5中使用Windows 10,並且幾乎找到了所有類似“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]

它完美的工作,希望它有幫助。

感謝@ 的answer btw。


我認為值得一提的是,你也可以用如下所示的zcat加載gzipped(壓縮)文件:

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

有時定義的端口以及該數據庫的服務器IP地址也很重要。

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

有關我剛剛使用默認root + withoutpassword的信息,它不適用於上述所有答案。

  • 我創建了一個擁有所有權限和密碼的新用戶。 有用。

  • -password無空格。


為了備份目的,製作一個BAT文件並使用任務計劃程序運行此BAT文件。 它將對數據庫進行備份; 只需將以下行複制並粘貼到Notepad ,然後保存.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

為我工作的解決方案如下:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

要一次導入多個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文件中,請使用以下命令

mysqldump -u username -p database_name > database_name.sql

要將SQL文件導入數據庫(確保與SQL文件位於同一目錄中或提供文件的完整路徑)

mysql u -username -p database_name < database_name.sql

轉到您擁有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這樣的GUI客戶端來做到這一點。


雖然這裡的大多數答案只是提到簡單的命令

mysql -u database_user -p <database_file.sql

今天,在這個命令不足的情況下,數據庫和表格都有utf8整理是很常見的。 在導出的表中使用utf8-collat​​ion時,需要使用以下命令:

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

Surley這個也適用於其他的字符集,如何顯示正確的符號可以在這裡看到:

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 --user=[user] --password=[password] [database] < news_ml_all.sql






import