MySQL密码正确却无法本地登录怎么办

作者&投稿:恭爬 (若有异议请与网页底部的电邮联系)
~
MySQL root密码正确,却怎么也无法从本地登录MySQL,提示 1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向h



MySQL root密码正确,却怎么也无法从本地登录MySQL,提示

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

这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,,故怎么也无法利用root账户登录MySQL。

总结一点就是root账户缺失了访问localhost主机的账户信息,导致无法本地登录。

那有什么办法恢复root登录呢?

这里记录一下今天遇到的纠结事情:

首先kill掉MySQL进程然后在启动mysql的参数中加入

--skip-grant-tables

会发现这时无密码就可以登录mysql了。

当然我们还必须修复root账户丢失的数据项。

这里有两种解决方案:

第一种是因为root账户初始的时候有3条记录,包含root对应localhost,hostname,127.0.0.1三条账户数据,我们可以update host为其他两项中一项为localhost即可。

第二种是直接insert一条记录,host为localhost即可

总结一下:即使root的host包含了主机名,127.0.0.1那么依然是无法正常登录的,这里必须要有localhost的host才行。

如果上面办法还是无法正常登录我们可尝试另一种办法

在本地用mysql命令直接回车可以进入mysql,但是里面只有test和information_schema数据库,没有mysql等数据库,使用use mysql报如下错:

mysql> use mysql

ERROR 1044 (42000): Access denied for user "@'localhost' to database 'mysql'

意思是说没有指定user,没有权限访问数据库mysql。

那么用root登录呢,输入正确的密码报如下错:

[root@228827 ~]# mysql -uroot -p123456

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

密码正确的情况下,mysql数据库已经禁止了root用户在本地的登录权限了。

使用root用户通过主机127.0.0.1登录就可以正常进入mysql,127.0.0.1和localhost对mysql数据库来讲是不同的主机,

[root@228827 ~]# mysql -uroot -p123456 -h 127.0.0.1

这让我想起了mysql下的user表。

我们要进mysql看user表,一种方法可以通过上面的命令,如果不行,可以用下面的命令启动数据库,缺省密码进入

代码如下



[root@228827 ~]# /etc/init.d/mysql stop
[root@228827 ~]# /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
[root@228827 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.57 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> use mysql
Database changed
mysql> select user,host,password from user where user='root';
+——+——————-+——————————————-+
| user | host | password |
+——+——————-+——————————————-+
| root | % | *A50E066E106320CF4142 |
| root | centos | *A50E066E106320CF4142 |
| root | 127.0.0.1 | *A50E066E1063608320CF4142 |
+——+——————-+——————————————-+
3 rows in set (0.12 sec)



发现user表host字段中没有localhost,但是我的理解是%代表所有的主机都能登录的,为什么localhost不能呢,同样的情况我在5.0.45版的mysql上面做实验就不会发生localhost无法登录,我当前用的是5.1.57版的,难道是版本的问题?

接下来的修改很明显了:

代码如下



mysql> update user set host='localhost' where user='root' and host='%';
mysql> flush privileges;


OK,退出mysql,重启mysql就解决问题了



快速解决MySQL输入密码闪退问题mysql一输入密码闪退
sudo mv \/etc\/mysql\/my.cnf \/etc\/mysql\/my.cnf.bak sudo cp \/usr\/share\/mysql\/my-default.cnf \/etc\/mysql\/my.cnf 这样,您现在应该重新启动MySQL进程,不会再出现输入密码后闪退的情况。MySQL是一种强大而灵活的数据库管理系统,但有时当您不期望的错误消息或不可思议的错误发生时,它可能会让...

请高手指教一下,我的服务器中MYSQL账号密码打的都对,就是链接不上数据...
你是用root 来登录吗?如果root登录不了的话,那要重置一下root密码。如果不是root,先用root进去看下是否有个没有用户名的账号,把那个账号删掉,再试下

为什么装的mysql过一段时间输入正确密码都进不去
有木有可能是密码过期了?查看mysql中的user表的password_expired字段,如果是Y,说明该用户密码已过期~改为N即可解决。

...Mysql的链接纵是连不上,出错,用户名和密码是正确的,错误如下:_百度...
2、选中DB Browser,右键单击,并选择New一个数据连接的菜单,新建一个MySQL连接,在弹出的新窗口中填入相应的信息,如下图所示:MyEclipse连接MySQL报错解决办法 图二:填写相应的信息 3、然后点击Finish,完成此次操作,却得到了如下图所示的错误信息,尝试多次也无法连接,为了验证用户名和密码是否正确,...

MYSQL 连接数据库失败,请确定数据库用户名,密码设置正确
设置为MYSQL的安装目录 basedir=D:\/www\/WebServer\/MySQL set datadir to location of data directory,e.g., c:\/mysql\/data 设置为MYSQL的数据目录 datadir=D:\/www\/WebServer\/MySQL\/data 另外,要注意:[WinMySQLadmin]Server=D:\/www\/WebServer\/MySQL\/bin\/mysqld-nt.exe user=root password=...

mysql连接数据库失败,请确定数据库用户名,密码设置正确
分析 怀疑使用了 --skip-grant-tables 使用 mysqld --print-defaults 检查,没有发现。检查登陆用户,都是 root@localhost,说明和 proxy user 没有关系。使用 mysql --print-defaults 检查客户端是否设置默认的用户和密码,没有发现。检查数据库中的用户和密码的相关字段:发现一切都正常,再检查 ...

mysql数据库连接失败,请确定数据库用户名,密码设置正确……
1、root用户默认是不允许远程登陆的,除非你安装的时候作了特别勾选。2、试一下对用户设置密码,特别是通过远程连接。可以试一下另外建一个用户,授权后用这个普通用户来连接。

MYSQL 连接数据库失败,请确定数据库用户名,密码设置正确,该如何...
linux下连接本机mysql有两种方式:1、socket 方式 2、tcp\/ip方式 你的估计就是这种问题,有些时候使用tcp\/ip方式,有些时候是另外一种。所以你可以有两种方式解决:1、直接强制使用tcp\/ip方式 2、把socket补上 方法:1、mysql 后面加个 --protocol=tcpip 2、 关闭 mysql , cd 到 \/tmp 然后输入...

mysql服务无法启动没有任何错误
1. 确认MySQL服务是否已经安装并启动,可以在控制面板中查看。2. 确认MySQL是否被占用,如果有其他程序在使用MySQL端口,需要先关闭该程序,并重新启动MySQL服务。3. 检查MySQL配置文件是否正确,可以查看my.ini文件是否存在,以及其中的端口、用户名、密码等信息是否正确。4. 检查MySQL数据文件是否正确,如果...

MYSQL 连接数据库失败,请确定数据库用户名,密码设置正确
你设置的mysql密码不正确或都没写密码,也可能是用户名也不对。打到名字类似config.php的数据库配置文件,把里面的username,password后面的值改成你的mysql用户名和密码就行了。一般mysql默认用户名为root,密码为root或者为空

灵台县17352797807: MySQL密码正确却无法本地登录怎么办 -
宰父苛派吉: MySQL root密码正确,却怎么也无法从本地登录MySQL,提示 1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只...

灵台县17352797807: 如何解决mysql本地登陆不能登录的问题 -
宰父苛派吉: 不能登录有好几种问题,根据你的描述给出以下几种:1. mysql没安装好,需要重新安装mysql2. 没有配置环境,可以在cmd中输入mysql查看是否可以运行.3. 在cmd下输入mysql -u -p,一般情况下用户名为root,如果没设置密码则空密码登录

灵台县17352797807: mysql成功启动无法连接本地数据库
宰父苛派吉: 看是不是防火墙阻止了mysql的3306端口

灵台县17352797807: 在命令提示符中输入Mysql密码显示的是无法连接到mysql服务器上的'本地主机',怎么办? -
宰父苛派吉: mysql服务没有启动,进入安装目录bin文件夹下启动mysql服务,或者net start mysql

灵台县17352797807: 请高手指教一下,我的服务器中MYSQL账号密码打的都对,就是链接不上数据库了. -
宰父苛派吉: 你是用root 来登录吗?如果root登录不了的话,那要重置一下root密码.如果不是root,先用root进去看下是否有个没有用户名的账号,把那个账号删掉,再试下

灵台县17352797807: mysql使用用户名和密码无法登陆问题 -
宰父苛派吉: 是不是远程访问的端口被防火墙之类的给挡住了?这是最常见的情况.权限修改后需要重新加载权限才生效.

灵台县17352797807: 如果mysql密码登陆不了怎么办? -
宰父苛派吉: MySQL有时候忘记了root密码是一件伤感的事.这里提供Windows 和 Linux 下的密码重置方法.Windows:1.以系统管理员身份登陆系统.2.打开cmd-----net start 查看mysql是否启动.启动的话就停止net stop mysql.3.我的mysql安装在d:\usr\local\...

灵台县17352797807: Mysql无法登陆,求大神解决! 信息为localhost root 密码为空 出入密码情况一样 -
宰父苛派吉: mysql数据库,返回#2003错误,并出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)", 说明你的MySQL还没有启动.解决办法:第一步 删除c:windowns下面的my.ini 第二步 打开c:mysqlbinwinmysqladmin.exe 输入用户名 和密码 第三步 在dos下 输入 mysqld-nt -remove 删除服务 在接着输入 mysqld-nt -install 第四步 输入mysql 启动成功 如果能够成功解决,记得给我

灵台县17352797807: mysql开机后无法启动怎么办 -
宰父苛派吉: 可以把它设置成自启... 1、右击我的电脑点击管理 2、点开服务与应用管理 3、双击服务 4、找到mysql,右击点开属性 5、把启动类型改为自动 6、点击应用,然后点击确定.. 对于一般的错误处理,你应该先看一下错误日志,mysql_error.log,一般应该是这个名字,在data文件夹下,看一下究竟是什么错误 实在不行的话,你先改回来,你看一下你mysql的安装目录下应该会有这几个备份用的.ini文件,如果没有的话,发我的配置文件给你也行

灵台县17352797807: navicat for mysql无法连接数据库密码是对的,不是本地访问 -
宰父苛派吉: mysql 默认是禁止远程连接的,你先确定是不是允许了.另外就是mysql有新旧密码之分(主要是加密方式不一样)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网