发表于: 2016-11-13 22:22:54

2 2906


今天完成的事情:就只是安装了一个mysql,然后手贱修改密码,又不能进去了。。。。。

遇到的问题:

1. ERROR 1045 (28000): Access denied for user 'root'@'localhost',没有解决,mysqld.log里面没有报错

收获:

1.

ps命令

Centos上进程有5种状态: 

1. 运行(正在运行或在运行队列中等待) 

2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 

3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 

4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 

5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)


ps工具标识进程的5种状态码: 

D 不可中断 uninterruptible sleep (usually IO) 

R 运行 runnable (on run queue) 

S 中断 sleeping 

T 停止 traced or stopped 

Z 僵死 a defunct (”zombie”) process


ps ef|grep tomcat


ps -ef 的意思显示系统执行进程

-e 显示所有终端机下执行的进程

-f 指的是显示UID,PPIP,C与STIME栏位


grep 是搜索过滤

一般重启tomcat的时候就会用到上面的命令,获取tomcat的进程

kill -9 pid


kill的作用是向某个指定的进程或进程组发送指定信号,从而结束该进程/进程组。-s选项可以指定要发送的具体信号,如果没有指定,

则默认发送SIGTERM信号至指定进程/进程组,若进程没有捕获该信号的逻辑,则SIGTERM的作用是终止进程。


kill pid的作用是向进程号为pid的进程发送SIGTERM(这是kill默认发送的信号),该信号是一个结束进程的信号且可以被应用程序捕获。

若应用程序没有捕获并响应该信号的逻辑代码,则该信号的默认动作是kill掉进程。这是终止指定进程的推荐做法。


kill -9 pid则是向进程号为pid的进程发送SIGKILL(该信号的编号为9),SIGKILL既不能被应用程序捕获,

也不能被阻塞或忽略,其动作是立即结束指定进程。通俗地说,应用程序根本无法“感知”SIGKILL信号,它在完全无准备的情况下,

就被收到SIGKILL信号的操作系统给干掉了,显然,在这种“暴力”情况下,应用程序完全没有释放当前占用资源的机会。

事实上,SIGKILL信号是直接发给init进程的,它收到该信号后,负责终止pid指定的进程。在某些情况下(如进程已经hang死,

无法响应正常信号),就可以使用kill -9来结束进程。


使用yum方式安装mysql

yum在以前的日报中提到过,就是一个软件包管理器,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系

Loaded plugins: fastestmirror                                   已加载插件:fastestmirror 

Loading mirror speeds from cached hostfile                          加载镜像速度从缓存 hostfile

 * base: mirrors.aliyuncs.com

 * epel: mirrors.aliyuncs.com

 * extras: mirrors.aliyuncs.com

 * updates: mirrors.aliyuncs.com

Error: No matching Packages to list                               没有匹配的软件包可供列表

这个blog提到了如何更换yum的源

http://blog.csdn.net/yasi_xi/article/details/8373057

mv CentOS-Base.repo CentOS-Base.repo.save 


mv

mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

上面的命令就是将文件名修改

按照这个blog的步骤可以直接解决yum list mysql-server

http://www.mamicode.com/info-detail-503994.html

wget命令

wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以

使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合。

上面的blog提到了常见问题的解决办法

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


原因是/var/lib/mysql的访问权限问题。

使用下面的命令把/var/lib/mysql的拥有者改为当前用户

sudo chown -R openscanner:openscanner /var/lib/mysql


sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;

-R 处理指定目录以及其子目录下的所有文件


执行结果

chown: invalid user: ‘openscanner:openscanner’           用户名无效

下面的才正确

sudo chown -R root:root /var/lib/mysql 


使用默认账号登录  mysql -u root


看到下面的信息就进去了

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.6.34 MySQL Community Server (GPL)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 


你可以按照上面那个blog重置密码


然后是开放3306端口,这里我没有找到iptables


只找到了iptables-config

使用该命令发现端口已经打开 netstat -an|grep 3306


然后用我修改的用户名登录

ERROR 1045 (28000): Access denied for user 'yunbang'@'localhost' (using password: YES)

应该是没有这个数据库

然后使用root登录,发现也不用密码

Reading table information for completion of table and column names

读表信息的表名和列名完竣

You can turn off this feature to get a quicker startup with -A

您可以关闭此功能,以获得更快的启动使用-A

Database changed

数据库改变


然后我再次修改密码

之后发现无法使用网上的脚本方式启动数据库

/etc/init.d/mysqld start

使用xftp发现init.d文件夹中没有mysqld文件

接着使用root登录mysql报错

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

http://www.cnblogs.com/Anker/p/3551610.html

使用上面那个blog解决后发现

错误变成了1045 ERROR 1045 (28000): Access denied for user 'root'@'localhost'

使用网上的去掉权限修改密码重启数据库的方式根本不成功,然后开始查看mysqld.log....


返回列表 返回列表
评论

    分享到