从命令行访问远程数据库
我有一个Rackspace服务器。 我想从我的本地机器命令行访问数据库。
我尝试像:
mysql -u username -h my.application.com -ppassword
但它给出了一个错误:
错误2003(HY000):
无法连接到'my.application.com'上的MySQL服务器(10061)
什么原因导致这个错误,我怎样才能连接到远程数据库?
要直接login到远程mysql控制台,请使用以下命令:
mysql -u {username} -p{password} -h {remote server ip} {DB name}
它会带你到MySQL控制台直接切换到提到的数据库。
编辑my.cnf文件:
vi /etc/my.cnf
:
确保:
bind-address=YOUR-SERVER-IP
如果你有这条线:
skip-networking
请务必对其发表评论:
#skip-networking
不要忘记重新启动:
/etc/init.d/mysqld restart
试试这个命令mysql -uuser -hhostname -PPORT -ppassword
。
我面临类似的情况,后来当主机的mysql端口被input命令,它被解决了。
- 尝试
telnet 3306
。 如果没有打开连接,那么要么是防火墙设置,要么服务器不在监听(或不工作)。 - 在服务器上运行
netstat -an
来查看服务器是否启动。 -
您可能不允许远程连接。
见http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
简单地把它放在Ubuntu的terminal上:
mysql -u username -h host -p
现在点击进入
terminal会询问你的密码,input密码,然后你进入数据库服务器
我假设你在你的机器上安装了MySQL。 填写缺失的详细信息后执行下面的命令:
mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306
必须检查防火墙对3306端口的入站访问是否阻塞。
你应该把你的密码用'p'
mysql -u root -u 1.1.1.1 -p'MyPass'
这个解决scheme为我工作:
在您的远程机器上(例如: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地址,它是你ssh的ip地址,在这个例子中是295.13.12.53
your_ssh_mashine_local_port – 这是自定义端口不是22,在这个例子中它是3306。
target_ipaddress – 您试图转储数据库的机器的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
将要求密码,把你的密码,你连接。 希望这可以帮助。
我也得到了同样的错误。 但通过在远程mysql服务器上创build新的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
以下是全文: