MySQL(介绍,安装,密码操作,权限表)

一、数据库介绍
1、数据库相关概念
  a、支持并发
     b、锁的问题
     c、对客户端请求进行认证
     d、存取效率(降低IO次数)
    数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)
    数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件
    库(文件夹)=====》数据库
    表(文件)
    记录:抽取一个事物所有典型的特征/数据
        egon,18,180,male,True
        数据
        name='egon' age=18 height=180 sex="male" beutiful=True

2、数据库管理系统/软件分类:
    关系型:
        有表结构,存取数据前必先定义表结构,存数据必须按照字段的类型或者约束来
        典型代表:MySQL,Oracle,DB2,SQL server
    非关系型:
        存取数据都是采用key:value的形式
        非关系型:Mongodb,redis,memcache
二、安装配置
1、安装
2、加环境变量
3、把mysqld服务端软件做成系统服务
    注意:制作之前先把mysqld关掉
    C:Windowssystem32>tasklist |findstr mysqld
    mysqld.exe                    8372 Console                    2    454,916 K
    C:Windowssystem32>taskkill /F /PID 8372
    成功: 已终止 PID 为 8372 的进程。

    制作:
        mysqld --install
        查看:
            windows+r
            输入services.msc
4、统一字符编码
    1、在mysql安装目录下新建my.ini文件
    2、修改my.ini
        [mysqld]
        character-set-server=utf8
        collation-server=utf8_general_ci
        [client]
        default-character-set=utf8
        [mysql]
        default-character-set=utf8
    3、重启mysqld
    4、客户端登录,输入s查看结果
5、启动:
    未制作系统服务的启动方式:
        1、启动服务端
            mysqld
        2、启动客户端
            mysql -uroot -p -h127.0.0.1 -P 3306
            如果是在本机登录mysqld服务端可以简写:
                mysql -uroot -p
    制作完系统服务后就可以鼠标点击启动或关闭mysql:
        windows+r
        输入services.msc
        找到mysql,启动或关闭

三、登陆与修改密码
1、修改密码
 默认-uroot -p
 用于设置密码
 mysqladmin -uroot -p旧密码 password 新密码
 
2、破解管理员密码
    1、先关闭mysqld服务端
    2、以跳过授权表的方式在命令行中启动mysqld服务端
        mysqld --skip-grant-tables
    3、客户端直接以无密码的方式登录root用户,修改密码
        mysql -uroot -p
 
        mysql> update mysql.user set password=password("123") where user="root" and host="localhost";
        mysql> flush privileges;
        Query OK, 0 rows affected (0.00 sec)
    4、在命令行中用taskkill杀死mysqld服务,然后正常启动mysqld
        taskkill /F /PID 131312
        def password(mingwen):
            import hashlib
            m=hashlib.md5()
            m.update(mimgwen)
            return m.hexdigest()
四、授权表(mysql文件夹内的几张表)

user#该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段
db#该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段
tables_priv #该表放行的权限。针对:某一张表,以及该表下的所有字段
columns_priv #该表放行的权限,针对:某一个字段
 
    1.创建用户的语句
        create user  用户名@"主机地址" identified by "密码";
    主机地址是客户端ip   "%" / "127.0.0%" / "12.0.0.1"
 
    2. 授权的语句  *******
        语法: grant [权限的名称 select insert.... | all ] on 数据库.表名  to 用户名@主机地址;
     all   *.*             
              day41.*      
              day41.stu   
  select,insert       
        select(id,name),insert(id,name)   
 
    3.grant [权限的名称 select insert.... | all ] on 数据库.表名  to 用户名@主机地址 with grant option;
        with grant option 授权GRANT命令 可以创建用户或者给其它用户授权。
        特点: 如果授权时  用户不存在 直接自动创建用户
     grant all on *.* to wd@'%' identified by "123" with grant option;
 
    4.删除权限
       revoke 权限的名称 on 数据库.表名  from 用户名@"主机名" ;
  
       update mysql.user set  Grant_priv = "N" where user ="scote" and host = "localhost";
     删除创建用户权限
     *.刷新权限表
        flush privileges;
     5.删除用户
        drop user 用户名@"主机地址";
  6.查看当前登陆用户:
    select user();
原文地址:https://www.cnblogs.com/3sss-ss-s/p/9627791.html