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