像往常一样打开MySQL,输入mysql -u root -p结果报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
到网上查,让这样
然而这不知道是啥版本的kali,跟我的完全不一样,就没有mysqld.cnf这个配置文件,对于一个小白来说,无异于晴天霹雳
经过我的不断尝试,在这个目录找到了这个叫mysql.cnf的配置文件,加入protocol = tcp
不料一波未平,一波又起
报错ERROR 1698 (28000): Access denied for user 'root'@'localhost'
。
在网上找了好多方法,说是因为默认的MySQL没有密码,所以登不上,用mysql -u root
可以登录,然而并没有用,又找到一个说用sudo mysql -u root -p
,用sudo就可以登录,然而还不行
又有人说在/etc/mysql/mysql.conf.d/mysqld.cnf
写入skip-grant-tables
就可以任意登录了,然而这时Ubuntu的MySQL而不是kali的MariaDB,kali中没有这个配置文件,我就想肯定有类似功能的配置文件,最后找到了50-server.cnf
,然后在[mysqld]
下写入skip-grant-tables
我就信心满满的又去登录,还是不行
后来经过自己不断折腾,找到一个方法
mysql_secure_installation
本来是应该安装数据库后输入这一条命令进行安全配置,但是kali中的数据库是自带的,所以我们就没有经过这一步,然后我就突发奇想,输上去了
输入当前密码的时候随便输的,可能是因为上一步设置了免密的原因,所以对了,然后一路回车,设置新的密码
之后重启MySQLservice mysql restart
,否则错误不会消失
输入mysql -u root -p
,再输入设置的密码,终于成功了