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

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

我试过:

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

但它给出了一个错误:

错误2003 (hy000):

无法连接MySQL服务器(10061)

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

750562 次浏览
  1. < p > telnet 3306试试。如果它没有打开连接,要么有防火墙设置,要么服务器没有监听(或没有工作)。

  2. 在服务器上运行netstat -an查看服务器是否正常。

  3. 可能您不允许远程连接。

    看到http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

必须检查对3306端口的传入访问是否被防火墙阻止。

编辑my.cnf文件:

vi /etc/my.cnf:

确保:

bind-address=YOUR-SERVER-IP

如果你有这一行:

skip-networking

确保注释它:

#skip-networking

不要忘记重新启动:

/etc/init.d/mysqld restart

要直接登录远程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控制台。

试试这个命令mysql -uuser -hhostname -PPORT -ppassword

我也遇到过类似的情况,后来当mysql port for host输入命令时,问题就解决了。

你的密码应该是'p'

mysql -u root -u 1.1.1.1 -p'MyPass'

这个解决方案对我很有效:

在您的远程计算机(例如: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

将询问密码,输入您的密码,您就连接了。

简单地把这个放在ubuntu的终端上:

mysql -u username -h host -p

现在按回车键

终端会询问你的密码,输入密码,你就进入了数据库服务器

我假设您的机器上已经安装了MySQL。填写完缺失的细节后执行以下命令:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306

我也得到同样的错误。 但发现它有用的是在远程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/

试试这个,它的工作:

mysql -h {hostname} -u{username} -p{password} -N -e "{查询执行}"

如果你不想使用ssh隧道,在my.cnfmysqld.cnf中,你必须用你的本地ip地址(192.168.1.100)改变127.0.0.1,以便通过局域网访问。示例波形:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

my.cnfmysqld.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

为局域网访问修改用户(在您想要访问的远程服务器中运行查询的波纹)

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'@'(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服务器上测试

对于Mac,使用以下命令:

mysql -u app -h hostaddress -P port -D dbname -p

然后在提示时输入密码。

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

有一个简单的命令。

mysql -h {hostip} -P {port} -u {username} -p {database}

例子

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

这一个工作为我在mysql 8,替换hostname与你的主机名和port_number与你的port_number,你也可以改变你的mysql_user如果他不是根

      mysql --host=host_name --port=port_number -u root -p

进一步信息 .

如果你使用的是windows系统,可以尝试使用带有MySQL插件的Visual Studio Code,这是一种在windows机器上访问MySQL数据的简单而集成的方法。并列出数据库表,并可以执行任何自定义查询。

您可以使用以下代码连接到远程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