连接数据库失败:Access denied for user 'root'@'localhost' (using password: YES)
我写了一个PHP的登陆注册页在本地测试出现连接数据库失败:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)...
我写了一个PHP的登陆注册页在本地测试出现
连接数据库失败:Access denied for user 'root'@'localhost' (using password: YES) 这是怎么回事在网上查都说密码问题 可我数据库密码没问题 这是
<?php
/*****************************
*数据库连接
*****************************/
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
die("连接数据库失败:" . mysql_error());
}
mysql_select_db("test", $conn);
//字符转换,读库
mysql_query("set character set 'gbk'");
//写库
mysql_query("set names 'gbk'");
?>
还有这个
<?php
session_start();
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}
//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user where uid=$userid limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '邮箱:',$row['email'],'<br />';
echo '注册日期:',date("Y-m-d", $row['regdate']),'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?> 展开
连接数据库失败:Access denied for user 'root'@'localhost' (using password: YES) 这是怎么回事在网上查都说密码问题 可我数据库密码没问题 这是
<?php
/*****************************
*数据库连接
*****************************/
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
die("连接数据库失败:" . mysql_error());
}
mysql_select_db("test", $conn);
//字符转换,读库
mysql_query("set character set 'gbk'");
//写库
mysql_query("set names 'gbk'");
?>
还有这个
<?php
session_start();
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}
//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user where uid=$userid limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '邮箱:',$row['email'],'<br />';
echo '注册日期:',date("Y-m-d", $row['regdate']),'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?> 展开
8个回答
2016-05-31
展开全部
几个可能:
1. 用户名、密码错误,所以无法访问
2. 数据库端设置了IP访问权限,不能用localhost访问。换成具体的IP地址试试。
3. 数据库端设置了相关操作权限,该用户没有create权限。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。
1. 用户名、密码错误,所以无法访问
2. 数据库端设置了IP访问权限,不能用localhost访问。换成具体的IP地址试试。
3. 数据库端设置了相关操作权限,该用户没有create权限。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。
展开全部
1、检查环境正常
使用mysql -u root -p 可以进入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php执行可以连上数据库
2、打开hosts加入
复制代码代码如下:127.0.0.1 qttc
使用qttc当主机连接也正常,唯独就不认localhost。
3、localhost连接方式不同导致
为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:
当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
这是linux套接字网络的特性,win平台不会有这个问题
4、解决方法
在my.cnf的[mysql]区段里添加
复制代码代码如下:
protocol=tcp
保存重启MySQL,问题解决!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-10-10
展开全部
1. kill mysql进程
2.把下面这段保存在一个文件中,然后给任何人读写的权限。123456 是自己设的密码:
UPDATE mysql.user
SET authentication_string = PASSWORD('123456'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
3.输入一下命令:yourfile是你的文件的完全路径
mysqld_safe --init-file=yourfie &
4.以后应该就可以 用root 的账号和密码登录了。
2.把下面这段保存在一个文件中,然后给任何人读写的权限。123456 是自己设的密码:
UPDATE mysql.user
SET authentication_string = PASSWORD('123456'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
3.输入一下命令:yourfile是你的文件的完全路径
mysqld_safe --init-file=yourfie &
4.以后应该就可以 用root 的账号和密码登录了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库没开远程连接,一般禁止远程访问,让你们运维开启即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用具体ip访问mysql服务器 grant all privileges on *.* to username@"%" identified by "password";
mysql -u username -p passwowrd
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询