从命令行访问mysql远程数据库

时间:2013-04-08 06:22:06

标签: mysql shell mysql-error-2003

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

我试过了:

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

但是它给出了一个错误:

  

ERROR 2003(HY000):

     

无法通过'my.application.com'(10061)

连接到MySQL服务器

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

17 个答案:

答案 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-address
bind-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)

  1. 尝试telnet 3306。如果它没有打开连接,则表示存在防火墙设置或服务器未正在侦听(或无法正常工作)。
  2. 在服务器上运行netstat -an以查看服务器是否已启动。
  3. 您可能不允许远程连接。

    请参阅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

这是完整的帖子:

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

答案 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

Further Information Here

答案 16 :(得分:0)

如果您在Windows上,请尝试使用带有MySQL插件的Visual Studio Code,这是一种在Windows计算机上访问MySQL数据的简便且集成的方法。并且列出了数据库表,并且可以执行任何自定义查询。