Linux下MySql数据库忘记密码,修改账号权限

Linux下MySql数据库忘记密码

  1. 使用Xsheel连接mysql安装服务器(若没有此工具可去Xshell4破解版下载)
  2. 进入/etc/ 目录对文件 my.cnf 进行修改,操作如下命令:
# 第一步修改my.cnf 文件
vim /etc/my.cnf
# 第二步 在[mysqld]的段中加上一句:skip-grant-tables 例如:
    #此命令为登录时忽略登录密码,重置完密码后需要删除,并重启数据库
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables 
  1. 重新启动mysqld 数据库
# 重启命令
service mysqld restart
# 显示如下说明重启成功
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ] 

4.登录并修改mysql 密码

# 第一步 登录
mysql -u root -p
# 出现输入密码行直接回车
# 重置密码 
mysql> USE mysql ; 
#非5.7版本数据库
UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ; 
# 5.7版本数据库
# 修改密码(重点):
# mysql5.7不建议用update去修改密码:
update mysql.user  set password=password('root') where user='root'
# 这样修改的话,会报错,mysql5.7密码的字段不叫password,应该用命令:
update mysql.user  set authentication_string=password('123456') where user='root'
# 这样修改也能成功,但是后面操作数据库的话会报错。
# 此处两个问题:
# 第一:密码应该为:小写字母,大写字母,符号,数字,字符数>8
# 第二:修改密码应该用命令:
ALTER USER 'root'@'localhost'IDENTIFIED BY 'aaBBcc11%22&33'
# 如果设置允许远程登录,可以用:
ALTER USER 'root'@'%' IDENTIFIED BY 'aaBBcc11%22&33'
# 修改好之后刷新一下权限
flush privileges ;
# 然后将my.cnf里面的配置改回来,重启mysql:service mysqld restart

至此 root用户密码修改成功。

修改账号权限

# 使用Xshell 登录root用户
mysql -u root -p 
# 输入密码
# 创建用户
CREATE USER '你想要的用户名'@'%' IDENTIFIED BY '07fa533360d9';

‘%’ - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 ip 才能访问

# 设置密码
update mysql.user  set authentication_string=password('你新增用户的密码') where user='新增用户用户名';
# 给用户添加权限
grant all privileges on 想授权的数据库.* to '新增用户用户名'@'%';

all 可以替换为 select,delete,update,create,drop 对应不同的数据权限,查询/删除/修改/增加/删表

注意:操作的最后对权限进行刷新

flush privileges ;

你可能感兴趣的:(mysql,运维,mysql,数据库)