正常线上项目一个mysql可能会跑好几个项目,每个项目对应一个数据库,不同的数据库要对应不同的用户。并且权限也不一样。主要是安全的问题。
并且线上是不能用超级用户ROOT的。
## 修改密码
1、 mysqladmin -u用户名 -p旧密码 password 新密码
2 、update mysql.user set password=password(新密码) where user='root'
flush privileges
## 忘记密码
1、关闭数据库
mysqld (启动守护进程)
mysqld --skip-grant-tables
(跳过权限表)
然后进入mysql修改密码
## 创建用户
CREATE USER 用户名 @'IP地址' IDENTIFIED BY '密码'
此用户只能在制定的ip上使用 所有的ip要用 %
## 用户授权
GRANT 权限1,权限2... ON 数据库名.* TO 用户名 @ IP地址或者%
所有的数据库 就用 *.* 所有的权限就用 ALL或者ALL PRIVILEGES
## 撤销权限
REVOKE 权限1,权限2.. ON 数据库名.* FROM 用户名 @IP地址或者%
用户名加权限一句
grant 权限 1,权限2 on 数据库名.* to 用户名@IP地址 identified by 密码
flush privileges
## 查看权限
SHOW GRANTS FOR 用户名@IP地址
## 删除用户
DROP USER 用户名 @ IP地址
### DCL:Data Control Language
是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。
## 设置root指定IP访问