发表于: 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....
)YI6@Z[GOK`5.png)
评论