[mysql] 数据库操作

  1. 显示数据库
    SHOW DATABASES;
    默认数据库:
      mysql - 用户权限相关数据
      test - 用于用户测试数据
      information_schema - MySQL本身架构相关数据

  2. 创建数据库
    utf-8

     CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    

    gbk

     CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
    
  3. 使用数据库

    USE db_name;
    显示当前使用的数据库中所有表:SHOW TABLES;

  4. 用户管理
    创建用户

     create user '用户名'@'IP地址' identified by '密码';
    

    删除用户

     drop user '用户名'@'IP地址';
    

    修改用户

     rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
    

    修改密码

     set password for '用户名'@'IP地址' = Password('新密码')
    

    PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)

  5. 授权管理

     show grants for '用户'@'IP地址'                  -- 查看权限
     grant  权限 on 数据库.表 to   '用户'@'IP地址'      -- 授权
     revoke 权限 on 数据库.表 from '用户'@'IP地址'      -- 取消权限
    

    对于权限

    对于目标数据库以及内部其他:
    数据库名.* 数据库中的所有
    数据库名.表 指定数据库中的某张表
    数据库名.存储过程 指定数据库中的存储过程
    . 所有数据库
    对于数据库

    用户名@IP地址 用户只能在改IP下才能访问
    用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意)
    用户名@% 用户可以再任意IP下访问(默认IP地址为%)

flush privileges,将数据读取到内存中,从而立即生效。

6.启动免授权服务端

mysqld --skip-grant-tables

客户端
mysql -u root -p

修改用户名密码

update mysql.user set authentication_string=password('666') where user='root';
flush privileges;
posted @ 2019-09-30 10:14  Moke丶青  阅读(85)  评论(0编辑  收藏  举报