解决ubuntu下mysql的'Access denied for user 'root'@'localhost' (using password: YES)'
原文地址:https://blog.csdn.net/a1027805380/article/details/70990821
解决方法:
1.打开/etc/mysql/debian.cnf文件,里面存储了系统管理员的密码,把密码复制一下。
2. 输入命令:
mysql -u debian-sys-maint -p
再输入对应debian.cnf里对应的密码,以管理员身份进去
3.进入控制台后.按以下步骤进行:
use mysql;
update user set password=PASSWORD('新密码') where user='root';
FLUSH PRIVILEGES;
如果你的mysql是5.7版本后的,password字段已经改成authentication_string这个字段了,那就输入:
update user set
authentication_string=PASSWORD('新密码') where user='root';
此时可以输入quit;退出后用root帐号登录了。
还可以在这时创建新用户与授权操作
原文地址:https://zhuanlan.zhihu.com/p/93171069
1. 创建新用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
比如,要创建用户名:idaccess 密码:idaccess,需要使用的命令是:create user idaccess@'%' identified by 'idaccess';
2. 授权
命令:grant privileges on databasename.tablename TO 'username'@'host'
说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子:grant all privileges on huake_access_control2.* to idaccess@'%';
3. 设置与更改用户密码
命令:set password for 'username'@'host' = password('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");
例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
4. 删除用户
命令:drop user 'username'@'host'