我在Rackspace有一个服务器。我想从本地机器命令行访问数据库。

我试过:

mysql -u username -h my.application.com -ppassword

但它给出了一个错误:

错误2003 (hy000): 无法连接MySQL服务器(10061)

导致此错误的原因是什么?如何连接到远程数据库?


当前回答

Mysql服务器通常被配置为只监听本地主机(127.0.0.1),在那里它们被web应用程序使用。

如果这是您的情况,但您有SSH访问服务器,您可以创建一个SSH隧道并通过它进行连接。

在本地机器上创建隧道。

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(这个例子使用本地端口3307,如果你也有mysql在你的本地机器上运行,并使用标准端口3306)

现在你应该可以连接了

mysql -u $user -p -h 127.0.0.1 -P 3307

其他回答

有一个简单的命令。

mysql -h {hostip} -P {port} -u {username} -p {database}

例子

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

试试这个命令mysql -uuser -hhostname -PPORT -ppassword。

我也遇到过类似的情况,后来当mysql port for host输入命令时,问题就解决了。

我也犯了同样的错误。 但发现它有用的是在远程mysql服务器上创建新的mysql用户,然后连接。在远程服务器上执行以下命令:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

现在你可以用下面的命令连接远程mysql。

mysql -u openvani -h 'any ip address'-p

以下是全文:

http://openvani.com/blog/connect-remotely-mysql-server/

如果端口为默认值,则某些版本要求您尝试连接的数据库名称。

mysql -u <<your username>> -h <<your host>> <<your db name >> -p

这将提示密码,然后输入您的密码。如果端口不是默认的3306 然后:

mysql -u <<your username>> -h <<your host>> -P <<your port>> <<your db name >> -p

如果你使用的是windows系统,可以尝试使用带有MySQL插件的Visual Studio Code,这是一种在windows机器上访问MySQL数据的简单而集成的方法。并列出数据库表,并可以执行任何自定义查询。