您好我正在尝试在远程计算机上运行mysql查询
我试过这个
ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""
我无法使用该数据库
请建议工作指令
由于
答案 0 :(得分:31)
试试这个:
mysql -h host -u root -proot -e "show databases;";
答案 1 :(得分:8)
试试这个:
ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"
如果该用户具有执行SQL查询的权限,那么可以使用user@host
完成相同的操作,更不用说一般启动mysql了。使用-e
与--execute
相同,它将运行您在尾随引号(单引号或双引号)中放置的任何内容并退出。标准输出格式与使用--batch
时看到的格式相同。
答案 2 :(得分:3)
MySql似乎有一个特殊的命令行语法,其中包含数据库。
mysql -u user -p -e'SQL Query'数据库
这个文档相当陈旧,但我让它工作
http://www.cyberciti.biz/faq/run-sql-query-directly-on-the-command-line/
使用ssh的最终工作命令:
ssh user @ host“mysql -u user -e'show tables;'数据库名称“
答案 3 :(得分:1)
从宿主环境在Homestead VM上针对MySQL运行此操作产生了很好的结果……尽管我必须首先从VM内设置root密码才能正常工作。
ssh vagrant@192.168.10.10 mysql -h localhost -u root -p -e "'SELECT * FROM user;' mysql";
答案 4 :(得分:0)
这最终在bash脚本中为我工作:
query='USE [database]; SELECT ...'
mysql='mysql -u [username] -p[password] -e '"'""$query""'"
ssh [username]@[server] -t "$mysql"
如果您想使其更安全,请添加一个提示输入密码,而不是将其存储在可能不安全的地方。
答案 5 :(得分:0)
经过几次测试(与@ King-Wzrd基本相同)后,这对我有用:
ssh -t kom "mysql -uroot -p -e 'show databases;'"
ssh -t kom "mysql -uroot -p < /home/ling/websites/jin_test/.deploy/tmp.sql"
“把戏”是命令周围的引号。
-t 选项允许通过远程外壳以交互方式提示密码。
这里的 kom 只是在我的〜/ .ssh / config 文件中定义的ssh配置标识符(更多信息请参见https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/)。