Access denied for user 'root'@'localhost'
这周双休闲的没事又开始折腾了。先是要把电脑折腾成Linux,遇到各种坑爹问题,未遂。接着又准备维护维护服务器,好久没有更新服务端。先更新一波:
yum update接着一看剩余内存,本来就是2G内存的“入门”级服务器,运行了小半年估计内存已经满了
free -h
//或者 查看实时内存
top一看剩余内存还剩不到200M果断重启服务器,预料之中,果然都打不开了。博客站点、音乐API服务、Gerrit服务全挂了。先连MySql看看什么情况:
mysql -u root -p直接报错,连不上:
Access denied for user 'root'@'localhost'
因为配置上述服务的时候连接MySql数据库,用户root是配置密码的,但是实际MySql数据库root是没有密码。
cd /etc/找到mysql.conf文件编辑
vim my.cnf在[mysqld]下添加一行skip-grant-tables,使其登录时跳过权限检查
[mysqld]
skip-grant-tables
...
port = 3306
socket = /tmp/mysql.sock另外一看,本地的备份也打不开了,可能是因为折腾Linux系统导致的。打开一篇空白,而且MySQL数据库还报错,点击账户的时候:

(SELECT DISTINCT `User`, `Host` FROM `mysql`.`user` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`db` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`tables_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`columns_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`procs_priv` ) ORDER BY `User` ASC, `Host` AS根据提示是mysql数据库的db表中User索引丢失了:

只需要重新创建User的索引:


如果还不行,直接重新安装一下Xiuno服务。


