我有一个带Rackspace的服务器。我想从本地机器命令行访问数据库。
我试过了:
mysql -u username -h my.application.com -ppassword
但是它给出了一个错误:
ERROR 2003(HY000):
无法通过'my.application.com'(10061)
连接到MySQL服务器
导致此错误的原因是什么?如何连接到远程数据库?
答案 0 :(得分:203)
要直接登录远程mysql控制台,请使用以下命令:
mysql -u {username} -p {password} \
-h {remote server ip or name} -P {port} \
-D {DB name}
通过切换到上述数据库,可以直接进入mysql控制台。
答案 1 :(得分:28)
编辑my.cnf文件:
vi /etc/my.cnf
:
确保:
bind-address=YOUR-SERVER-IP
如果你有这条线:
skip-networking
请务必发表评论:
#skip-networking
不要忘记重启:
/etc/init.d/mysqld restart
答案 2 :(得分:21)
只需将它放在ubuntu的终端上:
mysql -u username -h host -p
现在点击
终端会询问您密码,输入密码并进入数据库服务器
答案 3 :(得分:15)
尝试此命令mysql -uuser -hhostname -PPORT -ppassword
。
我遇到了类似的情况,后来当用命令进入主机的mysql端口时,它已经解决了。
答案 4 :(得分:11)
对于Mac,请使用以下命令:
mysql -u app -h hostaddress -P port -D dbname -p
,然后在出现提示时输入密码。
答案 5 :(得分:8)
如果您不想使用ssh隧道,请在 my.cnf 或 mysqld.cnf 中使用您的本地更改 127.0.0.1 IP地址( 192.168.1.100 ),以便通过Lan进行访问。举例:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在 my.cnf 或 mysqld.cnf
中搜索 bind-addressbind-address = 127.0.0.1
并将 127.0.0.1 更改为 192.168.1.100 (本地IP地址)
bind-address = 192.168.1.100
要应用您所做的更改,必须使用下一个命令重新启动mysql服务器。
sudo /etc/init.d/mysql restart
为lan access修改用户 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服务器上测试
答案 6 :(得分:6)
telnet 3306
。如果它没有打开连接,则表示存在防火墙设置或服务器未正在侦听(或无法正常工作)。netstat -an
以查看服务器是否已启动。您可能不允许远程连接。
请参阅http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
答案 7 :(得分:6)
我假设您的计算机上安装了MySQL。填写缺失的详细信息后执行以下命令:
mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306
答案 8 :(得分:2)
必须检查防火墙是否阻止对端口3306的传入访问。
答案 9 :(得分:2)
有一个简单的命令。
mysql -h {hostip} -P {port} -u {username} -p {database}
示例
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
答案 10 :(得分:0)
试试这个,它的工作:
mysql -h {hostname} -u {username} -p {password} -N -e“{query to execute}”
答案 11 :(得分:0)
我也得到了同样的错误。 但是通过在远程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
这是完整的帖子:
答案 12 :(得分:0)
这个解决方案对我有用:
在远程计算机上(例如: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地址 你在这个例子中使用了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
将要求输入密码,输入密码并与您联系。 希望这会有所帮助。
答案 13 :(得分:0)
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
答案 14 :(得分:0)
您应该将密码设为'p'
mysql -u root -u 1.1.1.1 -p'MyPass'
答案 15 :(得分:0)
这个在mysql 8中为我工作的人,用您的主机名替换hostname
,并用port_number替换port_number
,如果他不是root用户,您还可以更改mysql_user
mysql --host=host_name --port=port_number -u root -p
答案 16 :(得分:0)
如果您在Windows上,请尝试使用带有MySQL插件的Visual Studio Code,这是一种在Windows计算机上访问MySQL数据的简便且集成的方法。并且列出了数据库表,并且可以执行任何自定义查询。