linux下使用localhost和127.0.0.1都不能连接的解决思路

本文详细介绍了在Linux环境下,遇到的MySQL localhost连接失败问题及解决方案。通过调整用户密码和检查配置文件,最终解决了只能通过本地IP访问的问题。文章还提供了多种修改MySQL密码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

linux下刚安装了mysql,尝试写了程序连接mysql,出现了只有用本地ip地址才能连接,而127.0.0.1和localhost都不能访问

解决这个问题主要查看3个方向

1.hosts中是否有ip映射

2.mysql数据库中user表中的用户信息是否正确

 

我解决的方向,

1.hosts查看了有映射127.0.0.1和localhost的信息。

2.用户信息有误

问题在这里:刚安装的时候记得用户和密码都是root,而且配置ip地址通过程序或者其他客户端软件访问是能够访问成功的。

但是退出重启系统后在本地使用命令(其他客户端等都访问正常)

mysql -uroot -proot

 

访问不了,提示密码

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

 

百思不得其解...

没办法,只有重新修改用户密码了

方法1

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

 

然后在连接mysql,成功。问题完美解决,localhost和127.0.0.1也都能访问了

 

 

可能还有其他原因

原因2-配置文件错误:
检查etc下面的my.cnf如下内容:

#password   = your_password
port     = 3306
socket     = /usr/mysql-data/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port     = 3306
socket     = /usr/mysql-data/mysql.sock

 

 

 

 

 

mysql修改密码方法有几种

方法一   

使用phpMyAdmin

  (图形化管理MySql数据库的工具),这是最简单的,直接用SQL语句修改mysql数据库库的user表,不过别忘了使用PASSWORD函数,插入用户用Insert命令,修改用户用Update命令,删除用Delete命令。在本节后面有数据表user字段的详细介绍。   

方法二   

  使用mysqladmin。输入  

  mysqladmin -u root -p oldpassword newpasswd  

 

执行这个命令后,需要输入root的原密码,这样root的密码将改为newpasswd。同样,把命令里的root改为你的用户名,你就可以改你自己的密码了。

  当然如果你的mysqladmin连接不上mysql

  server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。   

  下面的方法都在mysql提示符下使用,且必须有mysql的root权限:   

方法三   

  mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','system', PASSWORD('manager'));

  mysql> FLUSH PRIVILEGES   

 

  确切地说这是在增加一个用户,用户名为system,密码为manager。注意要使用PASSWORD函数,然后还要使用FLUSH

  PRIVILEGES来执行确认。  

 

转载于:https://www.cnblogs.com/hwaggLee/p/4640872.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值