簡體   English   中英

通過命令行將sql文件導入mysql

[英]Import sql file into mysql via command line

我有一個奇怪的問題。 我想通過命令行導入sql文件。 命令看起來像

mysql -u root -p root pdweb-sandbox < C:\Apache24\htdocs\pdweb-sandbox\migrations/init.sql

但是,如果在命令中明確輸入了密碼,則不會執行任何操作。 沒有錯誤,也沒有任何動作。 僅當密碼為空時,它才能按預期工作(但我需要在命令行中輸入密碼)。 但是我想在命令中輸入密碼。 它是腳本的一部分,腳本是自動觸發的。 密碼來自phinx.yml配置文件。 有沒有一種方法可以在命令中使用密碼?

您可以通過多種方式在腳本中執行此操作:

  1. 使用mysqlimport。 您可以在此處找到詳細信息。 https://www.toadworld.com/platforms/mysql/w/wiki/6152.mysql-importing-with-mysqlimport

  2. 使用mysql時,有關如何使用它的詳細信息如下(從https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html#option_mysql_password復制)

    --password [=密碼],-p [密碼]

    連接服務器時使用的密碼。 如果使用簡短選項格式(-p),則選項和密碼之間不能有空格。 如果在命令行上--password或-p選項后省略了密碼值,則mysql會提示輸入一個。

    在命令行上指定密碼應該被認為是不安全的。 請參見第6.1.2.1節“最終用戶密碼安全准則”。 您可以使用選項文件來避免在命令行中輸入密碼。

  1. 以上兩種方式都不安全。 您可以將密碼放在另一個選項文件中。 詳細信息在這里: https : // dev.mysql.com/ doc/ refman/ 5.7/ en/password- security- user.html`>將密碼存儲在選項文件中。 例如,在Unix上,您可以在主目錄中.my.cnf文件的[client]部分中列出密碼:

    [client] password = your_pass為確保密碼安全,除了您自己之外,任何人都不能訪問該文件。 為此,請將文件訪問模式設置為400或600。例如:

    shell> chmod 600 .my.cnf要從命令行命名包含密碼的特定選項文件,請使用--defaults-file = file_name選項,其中file_name是文件的完整路徑名。 例如:

    shell> mysql --defaults-file = / home / francis / mysql-opts第4.2.6節“使用選項文件”,詳細討論了選項文件。

  2. 使用期望。 “人期望”。 http://www.admin-magazine.com/Articles/Automating-with-Expect-Scripts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM