在godaddy布署数据库Mysql,以下IP均为示例IP 
域名IP:192.168.0.1 
网站IP:192.168.0.2 
数据库服务器:databasename.db.4568016.hostedresource.com(192.168.0.3 via TCP/IP) 
用户:[email protected] 
存储过程的definer使用的是 databasename@% 连接时,报错 SELECT command denied to user 'databasename'@'192.168.0.1'for table 'proc' 
如何解决

解决方案 »

  1.   

    域名IP:192.168.0.1这个应该是Server IP address
      

  2.   


    databasename'@'192.168.0.1
    不是用户 databasename@%当mysql 能够在用户表中找到 username@hostname 的精确匹配项时,MYSQL就会优先用这个精确匹配的账号,如果找不到则会用 databasename@%所有现在给你的 'databasename'@'192.168.0.1' 授一下权限即可。或者在用户账号中删除 'databasename'@'192.168.0.1'
      

  3.   

    现在的情况是不能给'databasename'@'192.168.0.1' 授权
    [email protected] 这个用户是创建数据库时自动生成的
      

  4.   

    不能给'databasename'@'192.168.0.1' 授权 是什么意思?授权不成功?还是什么其它原因?不用管[email protected]这个。
      

  5.   

    我找到了`USER_PRIVILEGES`表 
    字段 GRANTEE  TABLE_CATALOG  PRIVILEGE_TYPE  IS_GRANTABLE  
    记录 'databasename'@'%' NULL USAGE NO 
    和http://topic.csdn.net/u/20081001/17/FA87A0F5-7F14-4417-BB84-66D714C16362.html遇到的问题差不多
      

  6.   

    grant 时报错
    #1044 - Access denied for user 'databasename'@'IP' to database 'databasename' 
      

  7.   

    授权的话,没有特殊需求,不推荐直接在grant tables 中进行。一般是直接grant all on mydatabase.* to username@hostname;执行grant命令,首先你当前的账号要有grant的权力。
      

  8.   

    我的账号是创建数据库时, godaddy自动生成的
    但是通过这个账号登录时,没有权限进行grant,我是执行grant 命令的,不在grant tables 中进行
      

  9.   

    你的create procedure 语句是什么?
    SHOW CREATE PROCEDURE ....看一下,特别是参数 SQL SECURITY 参数的设置是什么? definer or invoker ?
      

  10.   

    CREATE DEFINER = 'altocraft1'@'%' PROCEDURE `add_user`( IN _city VARCHAR ( 50 ) , IN _first_name VARCHAR ( 50 ) , IN _password VARCHAR ( 50 ))
        NOT DETERMINISTIC
        SQL SECURITY DEFINER
        COMMENT ''
    begin
    ...
    end
      

  11.   

    SQL SECURITY DEFINER 
    那你这个DEFINER = 'altocraft1'@'%'  有权限访问表 'proc' 吗?
    你还是回到你mysql版中的贴子来问吧。这个界面太慢了。