在毕设后,一段时间没有用的阿里云中的mysql。毕设项目无法连接。
试图登录,出现Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)。
再出现Access denied for user ‘root‘@‘localhost‘ (using password: NO),重置密码后。
在跳过密码登录后,发现user表中user字段直接没有了root用户。
再到全部弄完。发现那个毕设用的库被黑客给删完了。留下了一个README
我寻思我也没有比特币啊,有了我也不知道怎么发啊,哈哈。
而且就一个毕设的库而已,我电脑里还有备份呢。
这是对于我遇到这次问题的记录,大多解决方案来自百度。我是做了一些搬运,赋值到和这个博客上,可能有些复制的和说的可能不对啊。我的建议是,可以点击我每一章的下面的参考链接,去看看原博客。虽然里面可能有些比如操作指令不一样的地方。但是问题不大。
那么接下里就来说一下,上面的问题如何解决
一.给msql设置系统变量
1.首先我以前么有给mysql设置过系统变量。这次也记录一下设置系统变量吧,方便在任何文件夹都可以登录mysql,而不用去特定文件夹下。
1、找到mysql的安装了路径
whereis mysql
2、确定安装路径在/usr/local/mysql/bin/mysql 下后,创建一个软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin
3、再次验证
mysql -V
参考链接为 参考链接
二.在尝试登录是遇到Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
总的来说我也不是很懂。也不知道为什么我没有那个socket文件了,而在tmp在我也根本没有这个文件
解决问题的关键在于改一个配置文件
修改/etc/my.cnf 配置文件
如果没有那就创建一个
我在原本有的基础上就添加了一点。比如上面的client部分。和下面mysql,和mysqld下面的sockt
这样就没有再报这个错了。
找了很多参考,最好的参考链接是参考链接
注意里面的的对于系统的操作命令可能不太一样。我说一下我的:service mysql-service stop
这是停止,启动就是start,重启就是restart;
三.Access denied for user ‘root‘@‘localhost‘ (using password: NO),和重新添加root
再然后就是另一个问题了,Access denied for user ‘root‘@‘localhost‘ (using password: NO)。说人话,就是我密码不对。但事实上我从来没有更改过我的密码。这应该和后面的user表没有root有关系。
步骤大体为,利用配置文件绕过登录进入mysql,然后更改密码。再把配合文件还原。然后利用密码登录。
配置文件还是刚才的my.cnf,在mysqld下加一个
skip-grant-tables
保存。重启mysql
直接输入mysql就可以进入mysql了
然后
use mysql
先
flush privileges;
然后
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '我的密码';
注意root@%,有的人可能是
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '我的密码';
可以自己查一下user表
select user,host from user;
这是在root还存在的情况下。如果查完没有root。那么就需要插入那一行数据了
那自然是要通过命令去创建root用户了
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
添加权限
update user set Host='%',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
在进行查看user表数据,可以看到root用户被创建和添加权限。
都弄完之后就可以,去把my.cnf中的添加的语句删掉了。然后再重启mysql就好了。
参考链接参考链接