Linux 下 MySQL 无法访问的问题如何排查?

赞赏 2016-07-12

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


 处理办法


  1. 查看 Linux 操作系统是否已经安装了 MySQL
    $ rpm -qa mysql
    mysql-4.1.7-4.RHEL4.1
    
    # 说明已经安装了 MySQL
  2. 检查状态
    检测 MySQL 运行状态:
    service mysqld status
  3. 启动服务:
    可以用三种方法来启动 MySQL:
    1. 方法一:使用 service 命令启动 MySQL:
      service mysqld start

       

    2. 方法二:使用 mysqld 脚本来启动 MySQL:
      /etc/init.d/mysql start
    3. 方法三:使用 safe_mysqld 实用程序启动 MySQL 服务,此方法可以使用相关参数:
      safe_mysqld& //使用&表示将safe_mysqld放在后台执行。

  4. 登陆
  5. 修改密码
    mysqladmin -u root password
    mysqladmin -u root password 'kaishi'
    这里的“密码”为我们欲新设的密码。系统会提示我们输入旧密码(若是 MySQL 刚安装,则默认密码为空)

 

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

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

 

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

  1. 在本机登录
    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 "用户密码"。
    grant select,update,insert,delete on easyview.* to sillycat@192.168.10.103 identified by "kaishi";
  3. 查看结果,执行:
    use mysql;
    select host,user,password from user;

    可以看到在user表中已有刚才创建的user用户。host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以user用户登录到mysql服务器,建议在开发时设为%
  4. 修改了权限后需要执行如下语句生效:
    update user set host = '%' where user = 'sillycat';
    flush privileges;
登陆后阅读全文
阅读 1890 赞赏 0 有用 0 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

阿里云·业务运营团队内部的前端构建和工程化工具 Dawn开源

Ubuntu安装MySQL提示Depends: mysql-server-5.5 but it is not going

mysql-bin.00000* 文件误删删除导致mysql启动不起来

Linux screen 提示:There is no screen to be resumed matching

阿里云云盾扫描服务器的的IP段有哪些?

阿里云云盾扫描服务器的的IP段有哪些?

MySQL 上传报错#1064-You have an error in your SQL syntax

Linux下如何授权 MySQL 外网访问?

Linux系统如何查看 MySQL 版本号?

Ubuntu或Debian系统内如何卸载 MySQL 数据库服务?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章