本文摘自PHP中文网,作者黄舟,侵删。
问题说明
本文说明云服务器 ECS Linux 上 MySQL 无法访问问题的一般排查步骤。
处理办法
查看 Linux 操作系统是否已经安装了 MySQL
1
2
3
4
$ rpm -qa mysql
mysql-4.1.7-4.RHEL4.1
# 说明已经安装了 MySQL
检查状态
检测 MySQL 运行状态:1
service mysqld status
启动服务:
可以用三种方法来启动 MySQL:方法一:使用 service 命令启动 MySQL:
1
service mysqld start
方法二:使用 mysqld 脚本来启动 MySQL:
1
/etc/init.d/mysql start
方法三:使用 safe_mysqld 实用程序启动 MySQL 服务,此方法可以使用相关参数:
1
safe_mysqld&
//使用&表示将safe_mysqld放在后台执行。
登陆
修改密码
1
2
mysqladmin -u root password
mysqladmin -u root password
'kaishi'
这里的“密码”为我们欲新设的密码。系统会提示我们输入旧密码(若是 MySQL 刚安装,则默认密码为空)
如果本机可以登陆了,但是其他机器的客户端登陆报错。比如:
1 2 |
|
则首先查看了 iptables 的设置,确认开放了 3306 端口:
1 2 3 |
|
如果还是无法访问,则可能是 MySQL 的权限问题。则可以通过如下步骤排查:
在本机登录
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 才设置了访问的权限。进入 MySQL ,创建一个新用户 user :
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"。1
grant select,update,insert,
delete
on easyview.* to sillycat@192.168.10.103 identified by
"kaishi"
;
查看结果,执行:
1
2
use
mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的user用户。host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以user用户登录到mysql服务器,建议在开发时设为%。修改了权限后需要执行如下语句生效:
1
2
update user set host =
'%'
where user =
'sillycat'
;
flush
privileges;
以上就是Linux下MySQL无法访问问题排查的基本步骤的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《Linux》频道 >>