我们可以在远程机器上执行sql查询而无需登​​录

时间:2015-12-09 13:34:22

标签: mysql sql

如果我的盒子ip是10.10.10.10,是否可以像

那样执行一些sql suery
select * from some_table
远程机器10.10.10.20上的

,无需从终端登录该机器 如果没有,何时可能

4 个答案:

答案 0 :(得分:1)

是的,可以使用MySQL客户端。您可以使用以下语法:

mysql -u <username> -p -h remote.host database -e 'show databases;'

或在脚本文件中使用pass:

mysql -u <username> -p -h remote.host database < script.sql

答案 1 :(得分:1)

是的,有可能。您还没有告诉我们您的设置是什么。如果您已经 使用编程语言,请参阅@ Jaco的答案。如果您使用的是编程语言,则在连接字符串中,将localhost(或10.10.10.10)替换为10.10.10.20

答案 2 :(得分:0)

如果10.10.10.10上的mysql启用了网络(默认情况下它只启用本地通信,你应该启用在配置中监听0.0.0.0)并且防火墙上的端口3306是打开的,你可以。

添加一个允许从10.10.10.20远程连接到mysql的用户(即用户名@&#39; 10.10.10.20&#39;或用户名@&#39;%&#39;),然后只是做

mysql -u username -p -h 10.10.10.10 your_database_name

答案 3 :(得分:0)

首先,您需要通过提供服务器位置/ URL,数据库名称,用户名和密码来连接远程数据库,无论它位于何处(即使对于本地数据库)(在某些情况下,您需要提供)端口名称也)。根据您使用的语言,您需要用于创建连接的确切编码略有不同。与您建立了正常的数据库连接后,您可以执行登录用户允许的任何SQL查询。

  • 如果要从远程位置进行连接,则DB用户应具有远程连接权限。 (&#34;%&#34;用于允许来自任何位置)。

    CREATE USER 'newuser'@'%' IDENTIFIED BY 'mypass';
    
    GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%';
    
  • 如果您想从终端连接;

      shell> mysql -h 10.10.10.10  -u newuser -pmypass mydb