zoukankan      html  css  js  c++  java
  • Linux上安装Mysql后除了本机其他机器不能访问的问题(zhuan)

    http://blog.sina.com.cn/s/blog_a338027c0101esbs.html

    http://niutuku.com/tech/Mysql/237638.shtml

    http://www.jb51.net/LINUXjishu/454409.html

    ********************************************

    本机可以登陆了。但是其他机器的客户端登陆报错。
    ERROR 1130 (00000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQ
    L server

    首先查看了iptables的设置,添加开放了3306端口
    iptables -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
    iptables -A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT

    service iptables save
    service iptables restart

    还是其他机器不能访问,估计是MYSQL权限问题。

    在本机登陆
    mysql -h localhost -u root -pkaishi
    show databases;
    use mysql;
    select Host, User, Password from user;
    +-----------------------+------+-------------------------------------------+
    | Host | User | Password |
    +-----------------------+------+-------------------------------------------+
    | localhost | root | *18F54215F48E644FC4E0F05EC2D39F88D7244B1A |
    | localhost.localdomain | root | |
    | localhost.localdomain | | |
    | localhost | | |
    +-----------------------+------+-------------------------------------------+
    可以看到如上结果,只有localhost才设置了访问的权限

    进入mysql,创建一个新用户user: 
    格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"; 查看结果,执行: 
    use mysql; 
    select host,user,password from user;

    可以看到在user表中已有刚才创建的user用户。host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以user用户登录到mysql服务器,建议在开发时设为%。

    update user set host = '%' where user = 'sillycat';

    flush privileges;
    修改了权限后需要执行以上语句生效

    ********************************

    vi /etc/sysconfig/iptables

    在后面添加

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    service iptables restart

    发现还是不行

    最终发现记录要添加在

    -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT 这一条前面 再次重启 OK

    ****************************************

    1、问题及异常

    ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@75d634ea -- APPARENT DEADLOCK!!! Complete Status:

    Managed Threads: 3

    Active Threads: 3

    Active Tasks:

    2、查找原因

    费劲周知,确定是MySQL权限的问题

    3、解决过程

    1》 mysql -uroot -proot mydbName

    2》 grant all privileges on *.* to wangs@‘%’ identified by ‘123456’;

    3》 flush privileges;

    4》 exit;

    5》 /etc/init.d/mysql restart

    4、命令的说明

    进入 mysql ,用户为 root,密码为 root,数据库为 mydbName,-u 意为用户,-p 意为密码,

    增加用户 wangs,所有权限,数据库为 *,后面的 .* 不可少,% 代表对所有远程的 IP 地址,如果要限定 IP 地址的话,单独写上 IP 地址,

    密码是 123456,注意引号 ‘ 不可少,用来表示是字符串。

    以上就是Linux系统下无法访问mysql的解决办法,用户在遇到同样故障时可根据问题的异常状况来找出原因,然后再对症下药的解决问题。

  • 相关阅读:
    验证字符串空“” 的表达式
    should not this be a private conversation
    【转】你真的了解word-wrap 和 word-break 的区别吗
    To live is to function,that is all there is in living
    [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)
    Vim/gvim容易忘记的快捷键
    [转] Gvim for windows中块选择的方法
    问题集
    web services
    Trouble Shooting
  • 原文地址:https://www.cnblogs.com/zhao1949/p/6116200.html
Copyright © 2011-2022 走看看