一.如何登陆mysql:

1.下载安装mysql数据库:( 我们以5.5版本为例进行学习)

注意:

(1)下载安装时文件路径中不要有中文,不然路径不能解析,安装会失败。

(2)一般的数据库软件中有很多插件,选择性的安装,一般只需要client,server,database  

(3)在安装数据库的过程中会创建root用户及可以备选的用户,及密码。

2.登陆mysql:

(1)第一种方式(一般本地连接):通过client登陆,默认使用的是root用户,直接输入密码就可以登陆。如下图所示:

         

MySQL登录数据库 mysql用户登录_database

(2)第二种方式(本地或者远程连接):

         以windows为例:在dos窗口中cd到mysql安装目录下的bin目录,然后输入一下命令

>mysql -hlocalhost -uroot -p123456  

       

MySQL登录数据库 mysql用户登录_database_02

二.mysql数据库用户创建及权限管理:

1.创建用户并赋权限:

(1)第一种方式:grant命令

  mysql>grant all privileges on *.* to username@hostname identified by 'password';

 mysql>flush privileges;                  //权限修改之后一定要记得刷新系统权限表才能生效

  格式:grant 权限 on 数据库.表 to 用户名@登录主机 identified by "密码"; 

       

MySQL登录数据库 mysql用户登录_MySQL登录数据库_03

       通过grant命令可以创建用户同时分配权限,也可以给已有的用户赋权限,而且权限可以重复附加(第一次给查的权限,第二次给删的权限)

       hostname如果用“%”表示所有的机器都可以连接此数据库。

(2)第二种方式:create user命令:

 mysql>create user ‘jwang13’@'localhost' identified by 'jwang13';

 mysql>flush privileges;

     

MySQL登录数据库 mysql用户登录_sql_04

     注:通过这种方式创建用户之后可以通过grant命令进行权限赋值。在创建用户时identified by password为可选项,不设置默认不用密码

(3)第三种方式:直接往user表中插入一条记录

         mysql>insert into user (user,host,password,.......) values('jwang12','localhost',password('jwang12'),.......);

         mysql>flush privileges;

         然后通过grant命令给用户赋权限,这种方式一般很少用。

说明:user表中不同的数据库版本中字段的名字不太一致,比如password字段在高版本的user表中就没有,并且在插入时很多字段是默认不能为空的,所以在创建用户并赋权限的时候多采用第一种方式。

 2.查看用户及主机:

      mysql库中有一张user表,记录了用户的名称,主机,密码等信息

      mysql>select user,host,password from user;

      

MySQL登录数据库 mysql用户登录_MySQL登录数据库_05

 3.修改用户的密码:

     (1)第一种方式:修改用户密码实际上就是根据主机和用户名来更改user表中的密码,如下图所示:

mysql>update mysql.user set password='jwang13' where user='jwang' and host='localhost';

mysql>flush privileges

       

MySQL登录数据库 mysql用户登录_user_06

    (2)第二种方式:在登陆时通过mysqladmin命令修改密码;

           cd到mysql的安装bin目录,然后执行:

mysqladmin -u username -p password newpassword

Enter Password:******* 

           mysql -u username -p 

           Enter Password:*******       输入新密码回车即可进入数据库环境

          

MySQL登录数据库 mysql用户登录_user_07

 4.删除用户信息:

    (1)删除用户:这种方式只是删除了user表中的记录

mysql>Delete FROM user Where User='jwang' and Host='localhost';

mysql>flush privileges;

    (2)删除账户及权限:这种方式清除了有关该用户的所有信息,包括权限信息

mysql>drop user 用户名@'%';

mysql>drop user 用户名@ localhost; 

        

MySQL登录数据库 mysql用户登录_MySQL登录数据库_08

注意:如果只是删除了user表中的记录的话权限信息依然存在,如果重新添加一个用户和原先删除的用户一样的话,那他默认会拥有原先同名用户的权限信息。

5.mysql权限验证过程:

    常识1:在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有:

                 user,db,host,table_priv,columns_priv,proc_priv

        

MySQL登录数据库 mysql用户登录_user_09

 常识2:MySQL存取控制包含2个阶段:     

              阶段1服务器检查你是否允许连接。

              阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施某个具体的请求(如select)

常识3:user表中有很多字段,大致分为3类:

    (1)用户列:host,user,password(有的版本的user表中没有这个字段)

    (2)权限控制列:select_priv,insert_priv等以priv结尾的字段

    (3)安全控制列:ssl_type,ssl_cipher,x509_issuer,x509_subject(ssl用于加密,x509可以用来标识用户)

    (4)资源控制列:max_questions:每小时可以允许有多少次查询

                                   max_updates:每小时可以允许执行多少次更新

                                   max_connections:每小时可以建立多少次链接

                                   max_user_connects:单个用户可以同时具有的连接数。

      注意:有的版本中没有password,而是多了几个与密码相关的字段。在使用insert into user方法新建用户时,user表中部分字段不能为空,要设置默认值。