问题说明
1、用户名“xyz”已经开通了%的远程权限
2、远程访问192.168.1.2可以登录操作(即在同一个LAN内是没有问题的)
3、192.168.1.2的机器已经打开mysql的防火墙为所有Internet用户
3、这个192.168.1.2的路由器IP为222.185.1.2,此时我把host设置为“222.185.1.2 3306”无法连接
4、做了一个路由器映射,把路由器的端口3306映射转发到192.168.1.2上,依旧无法连接以上,貌似是连接超时还是怎么滴

解决方案 »

  1.   

    没太看懂你的问题说明。如果你的MYSQL在 192.168.1.2 上。则需要测试以下1. ping 192.168.1.2  -- 确认网络正常
    2. telnet 192.168.1.2 3306 -- 确认网络层可以访问这个端口 ,不能的原因会有多种,防火墙,路由设置,mysql   无法联接故障现象及原因 
    http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
      

  2.   

    已经可以连接上了。原来是已经连接上了,但是没有操作成功。
    那么换个问题好吗?
    问题:远程连接上数据库之后,无法进行create,select等操作,用户的操作权限已经是全部开放了,这是为什么呢?
      

  3.   


    连接后, 估计还是没有权限的问题。show grants;mysql> show grants;
    +-------------------------------------------------------------------------------
    ---------------------------------------------------------+
    | Grants for root@localhost
                                                             |
    +-------------------------------------------------------------------------------
    ---------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*23A
    E809DDACAF96AF0FD78ED04B6A265E05AA257' WITH GRANT OPTION |
    +-------------------------------------------------------------------------------
    ---------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  4.   


    mysql> use mysql
    Database changed
    mysql> show grants;
    +-------------------------------------------------------------------------------
    ---------------------+
    | Grants for why@%
                         |
    +-------------------------------------------------------------------------------
    ---------------------+
    | GRANT USAGE ON *.* TO 'why'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD7
    8ED04B6A265E05AA257' |
    | GRANT ALL PRIVILEGES ON `test`.* TO 'why'@'%' WITH GRANT OPTION
                         |
    | GRANT ALL PRIVILEGES ON `gotogk`.* TO 'why'@'%' WITH GRANT OPTION
                         |
    | GRANT ALL PRIVILEGES ON `information\_schema`.* TO 'why'@'%' WITH GRANT OPTION
                         |
    | GRANT ALL PRIVILEGES ON `mysql`.* TO 'why'@'%' WITH GRANT OPTION
                         |
    +-------------------------------------------------------------------------------
    ---------------------+
    5 rows in set (0.00 sec)
      

  5.   

    3、这个192.168.1.2的路由器IP为222.185.1.2,此时我把host设置为“222.185.1.2 3306”无法连接 
    4、做了一个路由器映射,把路由器的端口3306映射转发到192.168.1.2上,依旧无法连接 
    ------------------
    这个做端口映射只要2者间的端口都对应了,应该没问题的
    是否通,可以用telent进行判断
    已经可以连接上了。原来是已经连接上了,但是没有操作成功。 
    那么换个问题好吗? 
    问题:远程连接上数据库之后,无法进行create,select等操作,用户的操作权限已经是全部开放了,这是为什么呢?
    --------------------
    这个是权限问题,在msyql服务器上用mysql执行下分配权限就可以了:
    grant all on *.* to '帐号'@'%' identified by '密码';