当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 无法远程登入MySQL的几种解决办法

MYSQL
mysql "too many connections" 错误 之 mysql解决方法
MySQL: mysql is not running but lock exists 的解决方法
使用mysql中遇到的几个问题
MySQL一个索引最多有多少个列?真实的测试例子
MySQL里Create Index 能否创建主键 Primary Key
MySQL 创建索引(Create Index)的方法和语法结构及例子
MYSQL 优化常用方法
linux mysql 找回密码
mysql 动态执行存储过程语句
MySQL 查找价格最高的图书经销商的几种SQL语句
MySQL 客户端不输入用户名和密码直接连接数据库的2个方法
mysql 查询表中平均分最低的班级
mysql 左连接、右连接和内连接
Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)
Mysql 插入中文及中文查询 (修改+调试)
mysql 数据表中查找重复记录
MySql .frm数据库文件导入的问题
解决hibernate+mysql写入数据库乱码
mySQL UNION运算符的默认规则研究

MYSQL 中的 无法远程登入MySQL的几种解决办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 105 ::
收藏到网摘: n/a

方法一:
  尝试用MySQL Adminstrator GUI Tool登入MySQL Server,Server却回复错误讯息:Host '60-248-32-13.HINET-IP.hinet.net' is not allowed to connect to this
  MySQL Server
  这个是因为权限的问题,处理方式如下:
  shell>MySQL --user=root -p
  输入密码
  mysql>use MySQL
  MySQL>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]';
  [username]:远程登入的使用者代码
  [db_name]:表示欲开放给使用者的数据库称
  [password]:远程登入的使用者密码
  [ipadd]:IP地址或者IP反查后的DNS Name,此例的内容需填入'60-248-32-13.HINET-IP.hinet.net' ,包函上引号(')
  (其实就是在远端服务器上执行,地址填写本地主机的ip地址。)
  如果希望开放所有权限的话请执行:
  MySQL>update user set select_priv='Y' , Insert_priv='Y', Update_priv='Y', delete_priv='Y', Create_priv='Y', Drop_priv='Y',Reload_priv='Y', shutdown_priv='Y', Process_priv='Y', File_priv='Y', Grant_priv='Y', references_priv='Y',Index_priv='Y', Alter_priv='Y', Show_db_priv='Y', Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y', Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y' where user='[username]';
  方法二:
  如何解决客户端与服务器端的连接(mysql) :xxx.xxx.xxx.xxx is not allowed to connect to this MySQL serv
  1、进入MySQL,创建一个新用户xuys:
  格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
  grant select,update,insert,delete on *.* to [email protected] identified by "xuys1234";
  查看结果,执行:
  use MySQL;
  select host,user,password from user;
  可以看到在user表中已有刚才创建的xuys用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
  将host字段的值改为%就表示在任何客户端机器上能以xuys用户登录到MySQL服务器,建议在开发时设为%。
3、./MySQLd_safe --user-root &
  记住:对授权表的任何修改都需要重新reload,即执行第3步。
  如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在MySQL数据库的db表中插入一条记录:
  use MySQL;
  insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
  update db set host = '%' where user = 'xuys';
  重复执行上面的第2、3步。
  方法三:
  附加fbysss解决PHPMyAdmin连接远程用户的方法:
  1.用root账户登录远程MySQL服务器,
  grant select,update,insert,delete on *.* to [email protected] identified by "sss";
  update user set host = '%' where user = 'sss';
  退出MySQL,在shell下执行
  #MySQLadmin -u root -p [password] reload
  #MySQLadmin -u root -p [password] shutdown
  #/etc/rc.d/init.d/MySQLd start
  2.修改phpMyAdmin目录下的config.inc.PHP文件,找到
  $cfg['Servers'][$i]['host'] 修改为远程服务器地址
  $cfg['Servers'][$i]['user'] 修改为sss
  $cfg['Servers'][$i]['password']修改为sss的密码
  要注意的是:grant all privilege并不能把“grant” 的权限赋给用户,如果要加,可以直接在mysql中使用use MySQL;update user set Grant_priv ='Y'来达到要求。