Linux下MySQL无法访问问题排查的基本步骤


本文摘自PHP中文网,作者黄舟,侵删。

问题说明


本文说明云服务器 ECS Linux 上 MySQL 无法访问问题的一般排查步骤。

处理办法


  1. 查看 Linux 操作系统是否已经安装了 MySQL

    1

    2

    3

    4

    $ rpm -qa mysql

    mysql-4.1.7-4.RHEL4.1

     

    # 说明已经安装了 MySQL


  2. 检查状态
    检测 MySQL 运行状态:

    1

    service mysqld status


  3. 启动服务:
    可以用三种方法来启动 MySQL:

    1. 方法一:使用 service 命令启动 MySQL:

      1

      service mysqld start



    2. 方法二:使用 mysqld 脚本来启动 MySQL:

      1

      /etc/init.d/mysql start


    3. 方法三:使用 safe_mysqld 实用程序启动 MySQL 服务,此方法可以使用相关参数:

      1

      safe_mysqld& //使用&表示将safe_mysqld放在后台执行。



  4. 登陆


  5. 修改密码

    1

    2

    mysqladmin -u root password

    mysqladmin -u root password 'kaishi'

    这里的“密码”为我们欲新设的密码。系统会提示我们输入旧密码(若是 MySQL 刚安装,则默认密码为空)

如果本机可以登陆了,但是其他机器的客户端登陆报错。比如:

1

2

ERROR 1130 (00000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQ

L server

则首先查看了 iptables 的设置,确认开放了 3306 端口:

1

2

3

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

如果还是无法访问,则可能是 MySQL 的权限问题。则可以通过如下步骤排查:

  1. 在本机登录

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    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 才设置了访问的权限。


  2. 进入 MySQL ,创建一个新用户 user :
    格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"。

    1

    grant select,update,insert,delete on easyview.* to sillycat@192.168.10.103 identified by "kaishi";


  3. 查看结果,执行:

    1

    2

    use mysql;

    select host,user,password from user;


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


  4. 修改了权限后需要执行如下语句生效:

    1

    2

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

    flush privileges;

以上就是Linux下MySQL无法访问问题排查的基本步骤的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux选什么版本

关于删除一条安全组入方向规则并且撤销安全组出方向的权限设置

如何ecs管理控制台版本信息区域删除模板和版本

Linux使用bitnami安装redmine的方法

Linux系统命令无法使用

Linux怎么保存

Linux下zip文件解压出现乱码怎么办?

如何解决 Linux 实例 pip 操作时的超时问题

关于怎么更换一台或者多台实例的计费方式

如何在ecs管理控制台上导入 ssh 密钥对

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...