mysql8密码修改新建用户授权

191 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

原起一个惨痛的经历

image.png

修改密码

  • 修改配置文件为不用密码可以登录

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

再文件末尾添加

skip-grant-tables

image.png

  • 重启服务
  1. sudo service mysql restart
  • 登录切换到mysql
  1. mysql
  2. USE mysql
  • 改密码前先查下用户

我这里改了好多次不生效查了下用户法相root被干掉了!!!

select user,host from user;

image.png

  • 修改密码 注意用户名和%

alter user 'mysqld'@'%' identified by '123654Password';

报错 ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

要根据上面查询的用户进行修改;

然后执行命令flush privileges。再执行修改操作

我的是root用户被删了!!!

密码修改成功后执行:flush privileges;

修改后退出:exit

  • 更改密码后
  1. 注释掉/etc/mysql/mysql.conf.d/mysqld.cnf文件中添加的一行
  2. 重启服务:sudo service mysql restart
  3. 再次登录输入密码就可以了

2.添加用户

  • 创建用户 create user 'chat'@'%' identified by '123654Password';

%代表通配所有host地址权限(可远程访问)

localhost为本地权限(不可远程访问)

-授权

grant #auth on #databaseName.#table to '#userName'@'#host';

#auth 代表权限,如下

all privileges 全部权限

select 查询权限

select,insert,update,delete 增删改查权限

#databaseName 代表数据库名

#table 代表具体表,如下

*代表全部表

A,B 代表具体A,B表

#userName 代表用户名

#host 代表访问权限,如下

%代表通配所有host地址权限(可远程访问)

localhost为本地权限(不可远程访问)

  • 权限分配demo

grant all privileges on chat.* to 'chat'@'%';//把一个库的权限赋值给一个用户

执行刷新操作:flush privileges;

  • 查看用户权限操作 show grants for '#userName'@'#host';

参考上面用户信息查询 比如show grants for 'mysqld'@'%';

  • 删除用户 drop user '#userName'@'#host';