MySQL常见远程连接错误解决方法


  MySQL常见远程连接错误解决方法
  常见mysql远程连接错误解决方法
  1,远端无法telnet到mysql服务器的3306无反应
  解决方法:
  进入/etc/mysql/my.cnf,找到bind-address   = 127.0.0.1,将其注释掉,然后自毁执行/etc/init.d/mysql restart重启.
  2,远程能telnet到mysql服务器的3306但无法使用用户连接
  解决方法:
  远程可以telnet到Mysql服务器的3306,但用户无法访问,测试现象,telnet 192.168.1.11 33306连接上去马上关闭,进入到mysql,执行以下命令解决。
  mysql>grant create,select,insert,update,delete on mydb.* to [email protected] identified by '123456';
  以上命令是允许远程192.168.1.10这台计算机使用kevin这个帐号对mydb数据库进行创建表,选择,插入,更新及删除动作。另外,如果还需要本地也可以登录及修改mydb数据库,再执行以下命令:
  mysql>grant create,select,insert,update,delete on mydb.* to kevin@localhost identified by '123456';
  总之,需要那里访问mydb数据库,只用执行以上命令,修改@后台的地址就好了
  [username]:远程登入的使用者代码
  [db_name]:表示欲开放给使用者的数据库称
  [password]:远程登入的使用者密码
  [ipadd]:IP地址或者IP反查后的DNS Name,此例的内容需填入'60-248-32-13.HINET-IP.hinet.net' ,包函上引号(')
  MySQL的远程连接出现错误提示分析
  【内容摘要】技巧问题mysql的远程连接出现"lostconnectiontomysqlserverduringquery"安装完了rh8.0用自带的mysql以后直接在本机上可以正常使用mysql登陆,用mysql-uroot-p添加了一些用户,如*beginnerpass即beginner可以从任何地方通过密码可以访问这台mysql服务器(假设我的mysql服务器为mysql.test.com)但当我运行mysql-hmysql.test.com-ubeginner-p就提示:error2013:lostconnectiontomy……
  -------------------------------------------------- ---------------------------
  技巧问题 mysql的远程连接出现"lost connection to mysql server during query" 安装完了rh 8.0用自带的mysql以后直接在本机上可以正常使用mysql登陆,用
  mysql -u root -p
  添加了一些用户,如* beginner pass
  即beginner可以从任何地方通过密码可以访问这台mysql服务器(假设我的mysql服务器为mysql.test.com)但当我运行
  mysql -h mysql.test.com -u beginner -p
  就提示:
  error 2013: lost connection to mysql server during query
  其实我只要输入
  mysql -h mysql.test.com时就出现上面的提示,也就是说它根本还没有到验证密码那一步。

  这个问题是由于glibc的一个bug造成的。
  在glibc某些版本中,gethostbyaddr函数(确切地说是_nss_dns_gethostbyaddr_r)存在缓冲区溢出问题,在处理大数据时会造成segment fault。
  在处理远程连接时,mysqld会调用ip_to_hostname()函数,再由这个函数调用gethostbyaddr函数,最后系统在执行nss_dns_gethostbyaddr_r函数处崩溃。因此,会出现上述情况。
  解决问题的办法是升级glibc。
  本贴来自天极网群乐社区--http://q.yesky.com/group/review-17681663.html
  MYSQL无法远程连接的解决方法 : 
  如果你想连接你的mysql的时候发生这个错误: 
  以下是引用内容: 
  ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server  
  解决方法: 
  1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 \"mysql\" 数据库里的 \"user\" 表里的 \"host\" 项,从\"localhost\"改称\"%\" 
  mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;  
  2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 
  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  
  如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 
  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;   

猜你喜欢

转载自meiyang.iteye.com/blog/1572101