正常线上项目一个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访问