Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
主机';xxx.xx.xxx.xxx';不允许连接到此MySQL服务器_Mysql_Mysql Error 1130 - Fatal编程技术网

主机';xxx.xx.xxx.xxx';不允许连接到此MySQL服务器

主机';xxx.xx.xxx.xxx';不允许连接到此MySQL服务器,mysql,mysql-error-1130,Mysql,Mysql Error 1130,这应该非常简单,但我无法让它在我的生活中发挥作用。 我只是想远程连接到我的MySQL服务器 连接方式: 很好,但尝试: 失败,错误为: 在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户“root”的条目完全相同 我束手无策,不知道如何继续。 欢迎提出任何意见。可能是一种安全预防措施。您可以尝试添加新的管理员帐户: mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'som

这应该非常简单,但我无法让它在我的生活中发挥作用。
我只是想远程连接到我的MySQL服务器

  • 连接方式:
  • 很好,但尝试:
  • 失败,错误为:
mysql.user
表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户“root”的条目完全相同

我束手无策,不知道如何继续。
欢迎提出任何意见。

可能是一种安全预防措施。您可以尝试添加新的管理员帐户:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
尽管正如Pascal和其他人所指出的,让具有这种访问权限的用户对任何IP开放不是一个好主意。如果需要管理用户,请使用root,并将其保留在localhost上。对于任何其他操作,请严格指定所需的权限并限制用户的可访问性,正如Pascal在下面所建议的那样

编辑:

从MySQL常见问题解答:

如果你不明白为什么你会 访问被拒绝,请从用户中删除 表中包含主机的所有条目 包含通配符(条目)的值 包含“%”或“\”字符的)。A. 最常见的错误是插入一个新的 主机为“%”且 User='some_User',认为 允许您将localhost指定为 从同一台机器连接。这个 这不起作用的原因是 默认权限包括 具有Host='localhost'和 用户=“”。因为那个条目有一个主机 值“localhost”,该值更高 特定于“%”,它用于 选择新条目时的首选项 从本地主机连接!正确的 程序是插入第二个条目 使用Host='localhost'和 User='some_User',或删除 具有Host='localhost'和 用户=“”。删除条目后, 记住要发出刷新权限 语句重新加载授权表。 另见第5.4.4节“通道 控制,第1阶段:连接 核查”


如果手动修改授权表(使用INSERT、UPDATE等),则应执行
一个
FLUSH PRIVILEGES
语句,告诉服务器重新加载授权表


PS:我不建议允许任何主机为任何用户连接(尤其是
root
用户)。如果您将mysql用于客户机/服务器应用程序,请选择子网地址。如果您将mysql与web服务器或应用程序服务器一起使用,请使用特定的IP。

消息
*主机“xxx.xx.xxx.xxx”不允许连接到此mysql服务器
是mysql服务器对mysql客户端的回复。注意它是如何返回IP地址而不是主机名的

如果您试图连接
mysql-h-u-p
,并且它返回带有IP地址的消息,那么mysql服务器无法在客户端上执行反向查找。这是至关重要的,因为这就是MySQL客户机映射到授权的方式


确保可以从MySQL服务器执行
nslookup
。如果这不起作用,则DNS服务器中没有条目。或者,您可以在MySQL服务器的HOSTS文件中输入一个条目(
),您需要从任何主机名授予用户访问权限

这是如何从phpmyadmin添加新权限的

转到权限>添加新用户

为所需用户名选择任意主机


必须创建一个
新MySQL用户
,并通过phpMyAdmin或命令提示符在
查询提示符
中分配以下权限:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

完成所有四个查询后,它应该连接到
用户名/密码

,您所能做的就是打开mysql.cfg文件,您必须将绑定地址更改为该文件

绑定地址=127.0.0.1

然后重新启动mysql,您将能够将该服务器连接到此服务器

看这个,你可以从那个里得到想法


只需执行以下步骤:

1a)连接到mysql(通过本地主机)

1b)如果mysql服务器在Kubernetes(K8s)中运行并通过节点端口访问

kubectl exec -it [pod-name] -- /bin/bash
mysql -uroot -p
  • 创建用户

    创建由“密码”标识的用户“用户”@“%”

  • 授予权限

    使用GRANT选项将**上的所有权限授予“@%”用户

  • 刷新权限

     FLUSH PRIVILEGES;
    
    FLUSH特权


  • 我的错误消息与此类似,并说“主机XXX不允许连接到此MySQL服务器”,即使我使用的是root。下面是如何确保root拥有正确的权限

    我的设置

    • Ubuntu 14.04 LTS
    • MySQL v5.5.37
    解决方案

  • 打开“etc/mysql/my.cnf”下的文件
  • 检查:

    • 端口(默认情况下,这是“端口=3306”)
    • 绑定地址(默认情况下,这是'bind address=127.0.0.1';如果您想向所有人开放,只需注释掉这一行即可。在我的示例中,我会说实际的服务器位于10.1.1.7)
  • 现在访问实际服务器上的MySQL数据库(假设您的远程地址为123.123.123.123,端口3306处为用户“root”,我想更改对数据库“dataentry”的权限。记住将IP地址、端口和数据库名称更改为您的设置)

    mysql-u root-p
    输入密码:
    mysql>将**上的所有内容授予root@'123.123.123.123',由“输入密码”标识;
    mysql>刷新权限;
    mysql>退出
    
  • sudo服务mysqld重启

  • 您现在应该能够远程连接到数据库。例如,我使用MySQL Workbench并输入“Hostname:10.1.1.7”、“Port:3306”、“Username:root”

  • 我也面临着同样的问题,它在2分钟内解决了,我只是通过cpanel白名单ip

    假设您正试图从服务器A连接服务器B的数据库。 转到服务器B Cpanel->R
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
    
    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    
    mysql -uroot -p
    
    kubectl exec -it [pod-name] -- /bin/bash
    mysql -uroot -p
    
    mysql -u root -p
    Enter password: <enter password>
    mysql>GRANT ALL ON *.* to root@'123.123.123.123' IDENTIFIED BY 'put-your-password';
    mysql>FLUSH PRIVILEGES;
    mysql>exit
    
     Dim server As String = My.Settings.DB_Server
     Dim username As String = My.Settings.DB_Username
     Dim password As String = My.Settings.DB_Password
     Dim database As String = My.Settings.DB_Database
    
     MysqlConn.ConnectionString = "server=" & server & ";" _
     & "user id=" & username & ";" _
     & "password=" & password & ";" _
     & "database=" & database
    
     MysqlConn = New MySqlConnection()
    
     MysqlConn = New MySqlConnection()
    
     Dim server As String = My.Settings.DB_Server
     Dim username As String = My.Settings.DB_Username
     Dim password As String = My.Settings.DB_Password
     Dim database As String = My.Settings.DB_Database
    
     MysqlConn.ConnectionString = "server=" & server & ";" _
     & "user id=" & username & ";" _
     & "password=" & password & ";" _
     & "database=" & database
    
     FLUSH PRIVILEGES;
    
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
    GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;
    
    flush privileges;
    
    $ ls -l /var/lib/mysql/mysql/user.*
    -rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
    -rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
    -rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm
    
    $ /usr/sbin/rcmysql stop
    $ cd /var/lib/mysql/mysql/
    $ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
    $ /usr/sbin/rcmysql start
    $ cd -
    $ mysql -u root -p
    
    Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 
    
    FLUSH PRIVILEGES;
    
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    
        sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
        bind-address            = 0.0.0.0
    
        mysql -u root -p
        -- root password
    
        CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    
        GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
    
        CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    
        GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
    
        FLUSH PRIVILEGES;
    
        EXIT;
    
        sudo ufw allow from remote_IP_address to any port 3306