使用 bash 查询远程 MySql 数据库

Posted

技术标签:

【中文标题】使用 bash 查询远程 MySql 数据库【英文标题】:Querying remote MySql database with bash 【发布时间】:2016-06-24 16:45:04 【问题描述】:

我正在尝试使用以下脚本查询远程数据库。

some_db="somedb"
isAnythingToProcess=$(mysql -uroot -proot -D$some_db -e "$checkSearch");

这在本地对我有用,但是每当我尝试将 bash 脚本运行到远程 AWS 服务器时,我都会收到错误

错误 1049 (42000):未知数据库 'somedb'

有什么提示吗?

附:数据库肯定存在。我可以通过 MySQL 客户端连接到它。

【问题讨论】:

你是如何连接到远程服务器的? 该代码是我较大的 bash 脚本的一部分。作为客户端应用程序,我使用 Sequel Pro 客户端可以连接的事实与该数据库是否存在的问题无关。一台 MySQL 服务器拥有许多数据库。如果该服务器告诉您数据库不存在,那么很可能它不存在,或者您没有使用它的权限。 您必须添加 -h 并指定主机名它应该是 $(mysql -uroot -proot -D$some_db -h -e "$checkSearch"); 【参考方案1】:

需要为远程主机添加参数-h

some_db="somedb"
isAnythingToProcess=$(mysql -uroot -proot -h REMOTE_IP -D$some_db -e "$checkSearch");

【讨论】:

明显错误。谢谢你。感到愚蠢的发布问题。 出错了,没问题:)

以上是关于使用 bash 查询远程 MySql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

通过 MySQL 循环的 Bash 脚本

windows下用navicat远程链接虚拟机Linux下MySQL数据库

MySQL执行sql查询并上传至远程服务器

MySQL允许远程控制

MySQL 数据库实现远程连接

PHP:远程 MySQL 连接非常慢