我在Rackspace有一个服务器。我想从本地机器命令行访问数据库。
我试过:
mysql -u username -h my.application.com -ppassword
但它给出了一个错误:
错误2003 (hy000): 无法连接MySQL服务器(10061)
导致此错误的原因是什么?如何连接到远程数据库?
我在Rackspace有一个服务器。我想从本地机器命令行访问数据库。
我试过:
mysql -u username -h my.application.com -ppassword
但它给出了一个错误:
错误2003 (hy000): 无法连接MySQL服务器(10061)
导致此错误的原因是什么?如何连接到远程数据库?
当前回答
如果你使用的是windows系统,可以尝试使用带有MySQL插件的Visual Studio Code,这是一种在windows机器上访问MySQL数据的简单而集成的方法。并列出数据库表,并可以执行任何自定义查询。
其他回答
如果您不想使用ssh隧道,在my.cnf或mysqld.cnf中,您必须将127.0.0.1与您的本地ip地址(192.168.1.100)更改,以便通过局域网访问。示例波形:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在my.cnf或mysqld.cnf中搜索bind-address
bind-address = 127.0.0.1
将127.0.0.1改为192.168.1.100(本地IP地址)
bind-address = 192.168.1.100
要应用您所做的更改,必须使用next命令重新启动mysql服务器。
sudo /etc/init.d/mysql restart
修改lan访问的root用户(在您想要访问的远程服务器中运行查询的波纹)
root@192.168.1.100:~$ mysql -u root -p
..
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想只从特定的ip地址访问,将'root'@'%'更改为'root'@'(ip地址或主机名)'
CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;
然后你可以连接:
nobus@xray:~$ mysql -h 192.168.1.100 -u root -p
在ubuntu 18.04服务器上测试
有一个简单的命令。
mysql -h {hostip} -P {port} -u {username} -p {database}
例子
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
必须检查对3306端口的传入访问是否被防火墙阻止。
这个在mysql 8中为我工作,将主机名与您的主机名和port_number与您的port_number替换,如果他不是root,您也可以更改您的mysql_user
mysql --host=host_name --port=port_number -u root -p
更多资料请点击此处
要直接登录远程mysql控制台,使用下面的命令:
mysql -u {username} -p'{password}' \
-h {remote server ip or name} -P {port} \
-D {DB name}
例如
mysql -u root -p'root' \
-h 127.0.0.1 -P 3306 \
-D local
在命令行文档中的“使用选项”中指定的-p后没有空格
它将通过切换到上述数据库直接带您到mysql控制台。