背景 从 php 5.3 开始,php 的 mysql 操作只使用内置的 mysql 客户端 显然这个客户端的版本是要低于 5.6 的,但不影响使用原因 你安装 mysql 时,安装程序会把 mysql 的安装路径追加到操作系统环境变量 PATH 中 这就是不能访问的根源补救 所以你需要从 PATH 中去掉 mysql 的路径 不过这样一来,jdbc 可能就无法连接 mysql 了,可能需要重新配置一下
还有个问题,不知道是否有关系。 在我利用:MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password'); 修改密码时会提示:ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number 当改为MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('');时会成功。 ※及密码为空。但是我通过mysqladmin -u root -p password 是可以修改密码的,jdbc在密码为空和不为空时都可以访问。
tomcat、php、mysql都是自己安装的
从 php 5.3 开始,php 的 mysql 操作只使用内置的 mysql 客户端
显然这个客户端的版本是要低于 5.6 的,但不影响使用原因
你安装 mysql 时,安装程序会把 mysql 的安装路径追加到操作系统环境变量 PATH 中
这就是不能访问的根源补救
所以你需要从 PATH 中去掉 mysql 的路径
不过这样一来,jdbc 可能就无法连接 mysql 了,可能需要重新配置一下
首先我使用的php是4.4.9,而不是5.3以上版本。
其次,在PATH中并没有mysql的路径。
还有个问题,不知道是否有关系。
在我利用:MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
修改密码时会提示:ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
当改为MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('');时会成功。
※及密码为空。但是我通过mysqladmin -u root -p password 是可以修改密码的,jdbc在密码为空和不为空时都可以访问。
但有出现了一个新问题,在php页面中我写的用户是A,但是错误提示说B@localhost (B是我本机的用户名)不能访问mysql。
后来在mysql的user表中新增了一个B的用户。
终于搞定了。还是感谢版主及时回复。。