我在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)
导致此错误的原因是什么?如何连接到远程数据库?
当前回答
尝试Telnet 3306。如果它没有打开连接,要么有防火墙设置,要么服务器没有监听(或没有工作)。 在服务器上运行netstat -an查看服务器是否启动。 有可能您不允许远程连接。
详情见:
如何开启远程访问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服务器上测试
您可以使用以下代码连接到远程MY SQL数据库
mysql -u {database_user} -p{db_password} -h {host_name} -P {port_number}
mysql -u admin -p'your_password' -h your-company.aws.com -P 3306
有一个简单的命令。
mysql -h {hostip} -P {port} -u {username} -p {database}
例子
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
编辑my.cnf文件:
我们 /etc/my.cnf:
确保:
bind-address = YOUR-SERVER-IP
如果你有这一行:
skip-networking
确保注释它:
# skip-networking
不要忘记重新启动:
/etc/init.d/mysqld restart
这个解决方案对我很有效:
在您的远程计算机(例如:295.13.12.53)上可以访问您的目标远程计算机(运行mysql服务器)
ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53
解释道:
ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N
Your_ssh_mashine_ipaddress -它不是本地IP地址,而是IP地址 在本例中,SSH到295.13.12.53
Your_ssh_mashine_local_port -这是自定义端口而不是22,在本例中是3306。
target_ipaddress -要转储DB的机器的ip地址。
target_port - 3306这是MySQL服务器的真实端口。
user@your_ip_address -这是您连接的SSH mashine的SSH凭据
一旦所有这些都完成了,然后回到你的机器,这样做:
mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql
会询问密码,输入你的密码和你连接。 希望这能有所帮助。