场景一:调试web程序访问数据库的时候出现

场景二:MySQL登陆的时候,区分本地localhost登陆,以及远程登陆。即使本地能够登陆,如果不授权也无法远程登陆

分析原因:(区分)当本地出现这样的情况,就是密码错误,找到正确的密码或者修改密码;当远程登陆的时候,首先确定登陆密码是否正确,第二确定是否远程授权。针对以上两种情况,给出解决方案。

情况一解决方案:修改本地数据库密码

方法1: 用SET PASSWORD命令 
首先登录MySQL。 
格式:mysql> set password for 用户名@localhost = password('新密码'); 
例子:mysql> set password for root@localhost = password('123');

方法2:用mysqladmin 
格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p123456 password 123

方法3:用UPDATE直接编辑user表 
首先登录MySQL。 
mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges;

方法4:在忘记root密码的时候,可以这样 
以windows为例: 
1. 关闭正在运行的MySQL服务。 
2. 打开DOS窗口,转到mysql\bin目录。 
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 
6. 连接权限数据库: use mysql; 。 
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。 
7. 刷新权限(必须步骤):flush privileges; 。 
8. 退出 quit。 
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

情况二解决方案 :远程授权

1. 先用localhost登录(进入MySQL)      mysql -u root -p
Enter password:  (输入密码)
2. 执行授权命令
mysql> grant all privileges on *.* to root@'%' identified by '123';  (注意语句后面的“;”)
Query OK, 0 rows affected (0.07 sec)
3. 退出再试:  mysql> quit
4、再试登录:    mysql -u root -h 192.168.194.142 -p
  Enter password: 
 结果显示:Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
表示成功

下面详细说说如何给用户授权。
 
mysql> grant 权限1,权限2, ... 权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';

权限1,权限2,... 权限n 代表 select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file 等14个权限。
当权限1,权限2,... 权限n 被 all privileges 或者 all 代替时,表示赋予用户全部权限。
当 数据库名称.表名称 被 *.* 代替时,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是IP地址、机器名和域名。也可以用 '%' 表示从任何地址连接。
'连接口令' 不能为空,否则创建失败。

举几个例子:
mysql> grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql> grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql> grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql> grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。案:远程授权

MySQL登录时出现 Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) 的原因及解决办法的更多相关文章

  1. 【转载】在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问,并可修改MySQL密码

    在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问,并可修改MySQL密码 2018年08月 ...

  2. 在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问,并可修改MySQL密码

    这两天装了一个mysql 5.7数据库,但是在本地dos登陆不上去,报错Access denied for user 'root'@'localhost'(using password:YES): 也 ...

  3. mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”)的处理方法

    环境 CentosOS 6.5 ,已安装mysql 情景 root密码忘记,使用普通用户无法登录 解决 问题一 无法使用mysql命令 参考文章:https://www.cnblogs.com/com ...

  4. MySQL登录报错"Access denied for user 'root'@'localhost' (using password: YES)"

    最近登录MySQL时候总报错: # mysql -uroot -p Enter password: ERROR (): Access denied for user 'root'@'localhost ...

  5. linux下mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”)的处理方法

    最近登录某台服务器的mysql时候总报错: Access[root@log01 ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Acc ...

  6. mysql登录错误:'Access denied for user 'root'@'localhost'

    首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user 'root'@'localhost'. 数据库卸载重装了几次都不行.好像感觉 ...

  7. mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”的处理方法

    使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码: 文件内容: [client]host = localhostuser = debian-sys-maint ...

  8. centos 安装mysql 登录进提示 Access denied for user 'root'@'localhost' (using password: NO)

    # service mysqld stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & # mysql ...

  9. 最新 mysql登录报错“Access denied for user 'root'@'localhost' (using password: NO”的处理方法

    1.关闭正在运行的MySQL.2.打开DOS窗口,转到mysql\bin目录.3.输入mysqld --skip-grant-tables回车.如果没有出现提示信息,那就对了.(正常的情况是光标闪烁没 ...

随机推荐

  1. 使用Python3进行AES加密和解密 输入的数据

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  2. django数据请求

    目录 数据请求: 静态文件加载 form表单 : 数据请求: request方法: 数据请求: 静态文件加载 静态文件加载: 1.默认情况下所有的html文件都是放在templates文件夹内 静态文 ...

  3. java web开发入门三(Hibernate)基于intellig idea

    Hibernate 1.开发流程 项目配置好后的结构: 1.下载源码: 版本:hibernate-distribution-3.6.0.Final 2.引入hibernate需要的开发包(3.6版本) ...

  4. Redis内存回收策略

    如果使用Redis的时候,不合理使用内存,把什么东西都放在内存里面,又不设置过期时间,就会导致内存的堆积越来越大.根据28法则,除了20%的热点数据之外,剩余的80%的非热点或不怎么重要的数据都在占用 ...

  5. DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因

    使用DB2时,报错为 DB2 Error : SQLCODE=-802,SQLSTATE=22003 主要原因: 是我们sql语句使用某个字段*86400后结果非常大,导致无法返回结果:因为某个字段* ...

  6. Appium Grid并发测试

    背景 Selenium玩的比较6的同学比较清楚:在Selenium中三大组件中有包含了Selenium Grid,而其作用就是分布式执行测试用例.主要的应用场景在于: 缩短测试执行时间,提高自动化测试 ...

  7. Python【每日一问】31

    问: [基础题]:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数) ,凡报到 3 的人退出圈子,问最后留下的是原来第几号的那位. (n由键盘输入,比如n=100) [提高题] ...

  8. Python【每日一问】20

    问: [基础题]: 企业发放的奖金根据利润提成.利润(I): 低于或等于10万元时,奖金可提10%: 高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: ...

  9. windows,office激活工具推荐

    微软的操作系统windows,办公软件office,都需要付费.今天,蒟蒻菌带来一部软件,可以激活上述软件,那就是: heu_kms_activator_v19.5.1 二话不说,立即使用: 可以根据 ...

  10. 2、word插入目录、图/表

    一.word插入目录 依次对每个标题在“段落”中进行大纲级别选择. 光标定位于目录生成的页面,再“引用”->“目录”->选择“自动目录1/2”,则可自动生成目录.若目录有所更改,则可选择“ ...