2017-11-28 7 views
0

"test.sql"ファイルでmysqlクエリを実行しましたが、動作しません。 これは私のSQLコードです。.sqlファイルのmysqlクエリが機能しない(mariaDB、linux)

* test.sql内

UPDATE articles SET count = count + FLOOR(RAND()*5) WHERE ((UNIX_TIMESTAMP(created_at) - UNIX_TIMESTAMP())<86400); 
UPDATE articles SET count = count + FLOOR(RAND()*5) WHERE ((UNIX_TIMESTAMP(created_at) - UNIX_TIMESTAMP())<172800); 

私はこれを試してみました。

/usr/bin/mysqldump -uadmin -ppasswrod testdb > /home/test.sql 

しかし、応答は何もなかったし、機能しません。
また、データベースの内容は変更されていません。

[[email protected] Parse]# /usr/bin/mysqldump -ummdance -psecret mmdance > /home/qquing/public_html/Parse/mmd_view_update.sql 
[[email protected] Parse]# 

ただし、これはmysqlで動作します。

MariaDB []> UPDATE articles SET count = count + FLOOR(RAND()*5) WHERE ((UNIX_TIMESTAMP(created_at) - UNIX_TIMESTAMP())<86400); 
Query OK, 1176 rows affected (0.02 sec) 
Rows matched: 1486 Changed: 1176 Warnings: 0 

何が問題ですか?
ご協力いただきありがとうございます。

あなたが後方にある、 .sqlにコマンドを指示しようとしている

答えて

1

/usr/bin/mysqldump -uadmin -ppasswrod testdb > /home/test.sql 

代わりに、mysqlへの呼び出しに.sqlファイルを直接:

/usr/bin/mysql -uadmin -ppasswrod testdb < /home/test.sql 

多くのためのdocumentationをチェック情報。

+0

ありがとうございました。しかし、申し訳ありませんが、このエラーが発生しました。 => 1行目のエラー1064(42000):SQL構文にエラーがあります。あなたのMariaDBサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の 'Ctrl-C'の近くで使用されるようにしてください。 – User8392

+0

@ User8392これはうまくいきます。スクリプトでエスケープ/制御文字を確認できますか? MySQLはスクリプト内の何かを気に入らなかったようです。あなたが立ち往生した場合は、スクリプトが実行されるまで、スクリプトを行ごとに分けてください。次に、あなたが壊れている場所を正確に見つけるまで、物を追加してください。 –

+0

私はそれを解決しました。ありがとう! – User8392

関連する問題