登录
首页 >  数据库 >  MySQL

linux下使用localhost和127.0.0.1连接不上mysql数据库的问题

来源:SegmentFault

时间:2023-02-23 16:44:52 301浏览 收藏

本篇文章给大家分享《linux下使用localhost和127.0.0.1连接不上mysql数据库的问题》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

一、问题描述
1、在linux下安装完mysql之后,通过mysqladmin指令设置了管理员权限密码;

    mysqladmin -u root password '密码'

2、通过mysql -u root -p 输入设置的密码,死活提示

    ‘ERROR 1045 (28000): Access denied for user    'root'@'localhost' (using password: YES)’ 

3、把这条报错贴到浏览器去搜索,再根据网上的方式去操作,试过n种方法,都没成功
4、最后没办法,以为自己哪里的权限配置错了,把数据库卸了重装,这个问题依旧在
二、问题解决
1、尝试用客户端去连接数据库,神奇的发现居然可以连接
2、再用mysql -h 127.0.0.1 -u root -p输入密码去连接,还是一样的报错
3、再然后就用服务器的内网ip去连接,终于进去了

image.png

4、接下来就开始找原因了

(1)首先查找用户信息,发现localhost的user不是root   

image.png

(2)更新user表设置localhost的用户为root
update mysql.user set user = 'root' where host = 'localhost';
(3)再次mysql -u root -p + 密码,问题还是在

image.png

(4)又回去查看用户信息表,发现localhost和127.0.1没有对应的密码

image.png

(5)给用户为root的地址都设置同一密码
UPDATE mysql.user SET Password=PASSWORD('密码') where USER='root';

image.png

(6)刷新权限列表,再次用mysql -u root -p + 密码去连接数据库就可以了

image.png

image.png

(7)由于没有给localhost赋权限,通过mysql -u root -p登进去之后,创建数据库会报没权限的错
image.png

退出数据库,用内网ip去登录,然后付权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zhq-894612' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'zhq-894612' WITH GRANT OPTION;
flush privileges;
现在再用 mysql -u root -p 去登录就没什么问题了

三、mysql种localhost和127.0.1的区别,推荐文档

https://gohalo.me/post/mysql-localhost-vs-127.0.0.1-introduce.html

四、总结

这个问题并没有那么难,只是自己linux和mysql知识不够扎实,才绕了一大圈弯路;如果一开始就去分析用户信息,或许就能更快解决问题
遇到问题是痛苦的,解决过程是煎熬的,分析问题并解决是快乐的!!!

到这里,我们也就讲完了《linux下使用localhost和127.0.0.1连接不上mysql数据库的问题》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表