且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql 新增 删除用户和权限分配

更新时间:2022-10-01 09:59:25

1. 新增用户

 

mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234"));  


mysql>flush privileges;  

 

2. 修改用户密码


mysql>update mysql.user set password=password('new password') where User="lionbule" and Host="localhost";  


mysql>flush privileges;  

3. 删除用户


mysql>DELETE FROM user WHERE User="lionbule" and Host="localhost";  

mysql>flush privileges;  

 

4. 权限分配

    4.1. grant用法

           grant 权限 on 数据库.* to 用户名@'登录主机' identified by '密码'


权限:  

    常用总结, ALL/ALTER/CREATE/DROP/SELECT/UPDATE/DELETE  

数据库:  

     *.*                    表示所有库的所有表  


    test.*                表示test库的所有表 

 

    test.test_table  表示test库的test_table表  

     

用户名:  

     mysql账户名  

登陆主机:  

     允许登陆mysql server的客户端ip  

     '%'表示所有ip  


     'localhost' 表示本机  


     '192.168.10.2' 特定IP  

密码:  

      账户对应的登陆密码  

 

    4.2 例子


mysql>grant all  on test.* to lionbule@'%' identified by 'hello1234';  

mysql>flush privileges;  

    新增密码为‘hello234’的用户lionbule对test库拥有所有操作权限,并不限制lionbule用户的登陆IP。     

 




1、mysql默认安装后,生成一个super-user:root,密码为空,给root用户设置密码的方法很多

(1)mysqladmin -uroot password 'newpassword';

(2)update user set password='newpassword' where user='root'

2、如果不慎将root用户给删除了,可以尝试以下办法操作。

(1)、直接重新安装初始化数据库mysql,不会对数据库目录下/mysql/var/目录下其他数据库带来影响,

mysql_install_db --user=mysql,

然后重启

mysqld_safe --user=mysql &


(2)、尝试输入mysql --skip-grant-lables &,跳开权限认证,对mysql数据库中的user授权表进行操作,

insert into user (host,user,password,'','','','',''........)  values ('localhost,'root','root','','','','',''........);

3、  添加用户和设置权限

在安装MySql后只有一个超级管理权限的用户ROOT,而且ROOT限制只能在数据库本机上使用,如果我们要远程管理MySql咋办呢?那么事实上我们需要添加一个具有超级管理权限并且可能远程访问的超级用户,而在 MySql中有两种方法可以实现这个目的,我们以增加一个超级权限管理用户admin为例来说明。 

       你可以通过发出GRANT语句增加新用户:首先在数据库本机上用ROOT用户登录上MySql(不用我告诉你如何登录吧?),然后: 

mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; 


mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; 

第一句增加了一个admin用户授权通过本地机(localhost)访问,密码“something”。


第二句则是授与admin用户从任何其它主机发起的访问(通配符%)。 
       
        你也可以直接通过发出INSERT语句增加同样的用户存取信息: 


mysql>INSERT INTO user VALUES('localhost','admin',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') 


mysql>INSERT INTO user VALUES('%','admin',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') 

      取决于你的MySQL版本,对上述,你可能必须使用一个不同数目'Y'值(在3.22.11以前的版本有更少的权限列)。 

验证方法,在命令行中输入:mysql -h主机名或IP地址 -u用户名 -p密码 




SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;


show grants for 'cactiuser'@'%';   


select * from mysql.user where user='cactiuser' \G   










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1557500,如需转载请自行联系原作者