Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从命令行访问mysql远程数据库_Mysql_Shell_Mysql Error 2003 - Fatal编程技术网

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

从命令行访问mysql远程数据库,mysql,shell,mysql-error-2003,Mysql,Shell,Mysql Error 2003,我有一个带有机架空间的服务器。我想从本地计算机命令行访问数据库 我试着说: mysql -u username -h my.application.com -ppassword 但它给出了一个错误: 错误2003(HY000): 无法连接到“my.application.com”(10061)上的MySQL服务器 导致此错误的原因是什么?如何连接到远程数据库 请尝试telnet 3306。如果未打开连接,则可能是防火墙设置或服务器未侦听(或不工作) 在服务器上运行netstat-an,查看服

我有一个带有机架空间的服务器。我想从本地计算机命令行访问数据库

我试着说:

mysql -u username -h my.application.com -ppassword
但它给出了一个错误:

错误2003(HY000):

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

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

  • 请尝试
    telnet 3306
    。如果未打开连接,则可能是防火墙设置或服务器未侦听(或不工作)

  • 在服务器上运行
    netstat-an
    ,查看服务器是否已启动

  • 您可能不允许远程连接


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

    编辑my.cnf文件:

    vi/etc/my.cnf

    确保:

    bind address=YOUR-SERVER-IP

    如果你有电话:

    跳过联网

    请务必对其进行评论:

    #跳过网络

    不要忘记重新启动:


    /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端口时,问题就解决了。

    您应该将密码加上“p”

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

    这个解决方案对我有效:

    在您的远程计算机上(例如:295.13.12.53)可以访问您的目标远程计算机(运行mysql服务器)

    解释:

    ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N
    
    您的\u ssh\u mashine\u ip地址-它不是本地ip地址,而是ip地址 在本例中为295.13.12.53

    您的\u ssh\u mashine\u本地\u端口-这是自定义端口,而不是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
    
    将询问密码,输入您的密码,您已连接。
    希望这有帮助。

    只需在ubuntu的终端上安装:

    mysql -u username -h host -p
    
    现在按回车键


    终端将询问您密码,输入密码,然后您进入数据库服务器

    我假设您的机器上安装了MySQL。填写缺失的详细信息后,执行以下命令:

    mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 
    

    我也犯了同样的错误。 但通过在远程mysql服务器ans上创建新的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
    
    以下是全文:

    试试这个,它的工作原理是:


    mysql-h{hostname}-u{username}-p{password}-N-e“{query to execute}”如果您不想使用ssh隧道,在my.cnfmysqld.cnf中,您必须更改127.0.0.1本地ip地址(192.168.1.100),才能通过Lan进行访问。示例如下:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
    my.cnfmysqld.cnf中搜索绑定地址

    bind-address            =  127.0.0.1
    
    并将127.0.0.1更改为192.168.1.100(本地ip地址)

    若要应用所做的更改,必须使用next命令重新启动mysql服务器

    sudo /etc/init.d/mysql restart
    
    修改lan访问的用户root(在您想要访问的远程服务器中运行下面的查询)

    如果只想从特定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服务器上测试

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

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

    然后在提示时输入密码。

    mysql服务器通常配置为仅侦听本地主机(127.0.0.1),web应用程序在本地主机上使用mysql服务器

    如果这是您的情况,但您拥有对服务器的SSH访问权,那么您可以创建一个SSH隧道并通过它进行连接

    在本地计算机上,创建隧道

    ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host
    
    (本例使用本地端口3307,以防mysql也在本地计算机上运行,并使用标准端口3306)

    现在你应该可以和ale联系了

    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中对我有效,用你的主机名替换
    主机名
    ,用你的端口号替换
    端口号
    ,如果你的mysql用户不是root用户,你也可以更改他

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

    如果您使用的是windows,请尝试使用Visual Studio代码和MySQL插件,这是在windows计算机上访问MySQL数据的一种简单而集成的方法。以及列出的数据库表,可以执行任何自定义查询。

    10061
    =连接拒绝绑定地址=YOUR-SERVER-IP。这里我需要提及的IP是远程服务器IP吗?@user1986299不,您需要服务器的IP(不是远程),您应该授予自己访问权限。。。通过键入mysql从本地服务器登录您的数据库,然后:
    将**上的所有权限授予由“您的密码”标识的“root”@“
    永远不要授予“root”@“%”这是一个巨大的安全问题不@阿尔法辛这是一个小的调整与深刻的影响,谢谢你
    mysql-u testuser-h 192.168.**-P 3306-P password
    用于指定需要添加的数据库名称-D。mysql-u{username}-p{password}-h{remote server ip}-D{DB name}如果我们需要指定特定端口怎么办?在MacOS High Sierra版本10.13.3的终端中不起作用
    -p
    之后没有插入空格如果这是针对用户在控制台键入的情况,您应该很容易避免在命令行中将密码作为未加密文本传递
    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 --host=host_name --port=port_number -u root -p