在命令行访问MySQL远程数据库(Access mysql remote database from

2019-08-20 05:52发布

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

我想这样的:

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

但是它给出了一个错误:

ERROR 2003(HY000):

无法连接到MySQL服务器“my.application.com”(10061)

是什么原因导致这个错误,我怎么能连接到远程数据库?

Answer 1:

到直接登录到远程MySQL控制台上,使用下面的命令:

mysql -u {username} -p {password} \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

它会带你到MySQL控制台直接切换到所提到的数据库。



Answer 2:

编辑my.cnf文件:

vi /etc/my.cnf

请确保:

bind-address=YOUR-SERVER-IP

如果你有行:

skip-networking

确保评论吧:

#skip-networking

不要忘了重新启动:

/etc/init.d/mysqld restart



Answer 3:

只需在Ubuntu的把这个终端:

mysql -u username -h host -p

现在点击进入

终端会询问你的密码,输入密码,你是到数据库服务器



Answer 4:

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

我遇到类似的情况,后来当主机MySQL端口与输入的命令,它解决了。



Answer 5:

对于Mac,请使用以下命令:

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

然后在提示时输入密码。



Answer 6:

如果你想不使用ssh隧道,在my.cnfmysqld.cnf必须以具有通过LAN接入改变127.0.0.1与本地IP地址(192.168.1.100)。 例如波纹管:

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

my.cnfmysqld.cnf搜索绑定地址

bind-address            =  127.0.0.1

并改变127.0.0.1192.168.1.100(本地IP地址)

bind-address            =  192.168.1.100

以应用所做的更改,必须用下一个命令重新启动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地址,改变“根” @“%”“根” @'(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服务器上测试



Answer 7:

  1. 尝试telnet 3306 。 如果没有打开的连接,无论是有防火墙设置或服务器没有听(或不工作)。
  2. 运行netstat -an服务器上,看看服务器已启动。
  3. 这有可能是你没有允许远程连接。

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



Answer 8:

我假设你有你的机器上安装了MySQL。 填充缺失的细节后,执行下面的命令:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 


Answer 9:

必须检查传入访问端口3306是块或者不受防火墙。



Answer 10:

你应该用“P”把你的密码

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


Answer 11:

该解决方案为我工作:

在您的远程机器(例如: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服务器实端口。

用户@ your_ip_address - 这是你连接SSH mashine SSH信用凭证

一旦全部完成,然后回到你的机器,并做到这一点:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

会询问密码,把你的密码和你连接。 希望这可以帮助。



Answer 12:

我太得到同样的错误。 但发现它有用通过创建远程MySQL服务器上新的MySQL用户ANS然后连接。 运行下面的远程服务器上的命令:

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/



Answer 13:

试试这个,它的工作:

MySQL的-h {}主机名{-u用户名-p} {}密码-e-N “{查询执行}”



文章来源: Access mysql remote database from command line