我在给一个账号设置了 xxxx@'%', %按道理是表示任意的主机,当然也是包括自己了,
可是我登入数据库所在的那台服务器,用mysql -uxxxx -p 说登入拒接。
然后我新建了一个xxxx@'localhost',就可以直接在服务器上登入了。为什么% 表示所有的,但是在本机登入去登入不了????

解决方案 »

  1.   

    还有问题,mysql 怎么识别是来至本机连接和远程连接,假设我在数据库服务器上本机用命令登入
    mysql -hsss -uxxxx 
      

  2.   

    只用%的话 需要加上一个 mysql -uroot -p'' -h xxx.xxxx.xxxx.xxx 第2个问题 可以用
    select current_user() 来查看用户
      

  3.   

    问题是现在我的web和数据库在同一个机器上,web里面配置的数据库连接,里面的host username pwd
    ,就是上面说的有个账号 xxxx@'%',如果用这个放到web 里面,启动报错,为什么非要建一个localhost
      

  4.   

    看下my.cnf里面有没有bind-address这个参数,有的话注释掉试试
      

  5.   

     xxxx@'%', %是包含所有IP的
    但不能识别localhost 1.  xxxx@'%' 改成 xxxx@'localhost'
    2.或者改成  xxxx@'127.0.0.1' 登录即可
      

  6.   

    看一下日志中的信息,估计 用mysql -uxxxx -p 说登入拒接。 的时候被识别成某个用户了。贴 一下你的 select * from mysql.user