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

 

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

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

1.hosts中是否有ip映射

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

 

我解决的方向,linux

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

2.用户信息有误数据库

问题在这里:刚安装的时候记得用户和密码都是root,并且配置ip地址经过程序或者其余客户端软件访问是可以访问成功的。socket

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

mysql -uroot -proot

 

访问不了,提示密码工具

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

 

百思不得其解...ui

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

方法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来执行确认。  

相关文章
相关标签/搜索