Win10 子系统 Ubuntu 运行 MySQL 拒绝登录如何解决的
最近安装使用 MySQL 时,还没开始使用,就遇到一个XX的问题。在 Win10 自带的子系统安装完 MySQL
版本信息如下:
执行:sudo service mysql start ,正常启动 mysql
然后根据某菜鸟网站指导操作,设置root用户密码 sudo mysqladmin -u root password “123456” ,好吧,结果不知啥原因
说是默认密码为空,继续尝试 … ,结果还是一样,也不大行
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
搞半天,没登录进去 $_ $,我决定睡觉了
第二天,想到重新设置root密码的方法试试行不行,上班时间抽空百度,终于被我翻到了这样一篇
嗯,没错,救星来了 Ubuntu为mysql的root用户密码问题,感谢这位大佬。
解决方法就是先修改mysql配置文件,免密登录数据库,之后修改 root 密码,重启后,就可正常访问了。虽是这样,但是网上大部分方式都不大行,也可能是因为我系统是 win10 子系统吧,不造为啥
看到最多的是,在 /etc/mysql/my.cnf 中找到 [mysql] 节点配置 skip-grant-tables,但是这个文件是空的,因此配置了也没啥用。
最后解决是在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中,添加 skip-grant-tables
保存后,重启 mysql 服务: sudo service mysql restart ,如果重启失败就直接 kill 然后重新启动就可以了。
接下来就是重新设置root密码了,方法是:使用/etc/mysql/debian.cnf下的用户名免密登录mysql,直接回车,然后为root用户设置密码。
登录后设置root密码,执行 set password for root@localhost=password(‘123’); ,好吧,又出现下面报错
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
执行 flush privileges;,再重新设置, Query OK !
最后,执行 sudo mysql -u root -p,输入刚设置的密码,登录成功,别忘了去掉 skip-grant-tables。
到此,MySQL 安装环境问题已得到解决,该收拾睡觉了~~