MySQL8.0版本部分问题解决记录

mysql忘记root密码怎么找回?
数据库用户新增,删除,授权,注销

mysql忘记root密码怎么找回

参考链接
环境说明:MySQL 8.0版本,云服务器 系统 Ubuntu(18.0+好像)
需求:忘记mysql root密码,重置

解决方法:使用mysqladmin命令

1
sudo systemctl stop mysql	#这个命令将关闭MySQL。之所以先关闭MySQL,是为了方便接下来修改密码。

2
# 输入如下命令来启用无密码登录:
sudo mysqld_safe --skip-grant-tables & #这个命令将开启MySQL的临时权限,你可以暂时无需密码的访问 MySQL 数据库

3
mysql -uroot 	# 进入到命令行模式	

4
use mysql;
update user set authentication_string=password('123456') where user='root';#将数据库中root的密码更改为“123456

修改root用户只允许本地登录

同样修改user表

mysql -uroot -p你的密码 # 进入数据库

use mysql;

update user set host = '%' where user = 'root';#允许远程登录
update user set host = 'localhost' where user = 'root';#只能本地登录

新用户各种权限操作

参考连接,可以直接看连接

1、创建新用户

CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];

username:要创建的用户名;
host:代表地址;任何地址可以使用%
IDENTIFIED BY ‘password’:设置密码,如果不写则为空密码
eg:

CREATE USER 'dev_user'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'dev_user'@'%' IDENTIFIED BY '123456';

2、授权

GRANT privileges ON dbName.tableName TO 'username'@'host' [WITH GRANT OPTION];

privileges:用户的操作权限,如select, delete, update等,共14个。
dbname:数据库名
tablename:表名
WITH GRANT OPTION: 被授权的用户可以将他的拥有的权限授给其他用户
若要授权用户对所有数据库和表的相应操作权限可以用表示,如.*。

1. 查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
grant select, insert, update, delete on testdb.* to common_user@'%'
 
2. 创建表、索引、视图、存储过程、函数等权限。
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
 
3. 操作外键权限。
grant references on testdb.* to developer@'192.168.0.%';
 
4. 操作临时表权限。
grant create temporary tables on testdb.* to developer@'192.168.0.%';
 
5. 操作索引权限。
grant index on testdb.* to developer@'192.168.0.%';
 
6. 操作视图、查看视图源代码权限
grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';
 
7. 操作存储过程、函数 权限
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';
 
8. 管理数据库的权限。
grant all privileges on testdb to dba@'localhost'
其中,关键字 “privileges” 可以省略
 
9. 管理所有数据库的权限。
grant all on *.* to dba@'localhost'
 
查看当前用户(自己)权限:
show grants;
 
查看其他用户权限:
show grants for dba@localhost;
 
刷新授权,使之立即生效
flush privileges; 

3、撤销用户权限

REVOKE privilege ON dbname.tablename FROM 'username'@'host';

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

4、设置和更改用户密码

SET PASSWORD FOR 'username'@'host'=PASSWORD('your_password');
alter user 'username'@'host' identified by 'your_password';

5、删除用户:

DROP USER 'username'@'host';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值