zoukankan      html  css  js  c++  java
  • MySQL5.7数据库的基本操作命令

    MySQL5.7中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):

    登录MySQL

    mysql -u root -p

    Enter password:密码

    1.列出所有数据库

    show database;

    2.切换数据库

    use 数据库名;

    3.列出某个数据库所有表

    use 数据库名;

    show tables;

    4.查询数据

    use 数据库名;

    select 字段名(多个字段用“,”隔开,*表示所有字段) from 数据表名;

    也可以用 select 字段名(多个字段用“,”隔开,*表示所有字段) from 数据库名.数据表名;

    5.显示数据表结构

    describe 数据表名;     # 也可以简写为 desc 数据表名;

    也可以用 describe 数据库名.数据表名;

    6.删除数据库和数据表

    drop database 数据库名;

    drop table 数据表名;

    7.新建用户

    创建用户:

    insert into mysql.user(Host,User,Password) values("localhost","zhangsan",password("123456"));

    需要注意的是,如上,用insert方法向MySQL5.7中添加用户出现 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 的错误,MySQL5.7为了数据库的安全默认是禁止这种方法来创建用户的,所以应该避免用这种插入的方式来创建用户,正确的创建用户的方式是:

    无密码:create user '用户名'@'localhost';

    有密码:create user '用户名'@'localhost' identified by '密码';

    create user '用户名'@'localhost' identified by '密码';  # 本地登录

    create user '用户名'@'%' identified by '密码';            # 远程登录

    exit    # 退出数据库

    mysql -u 用户名 -p    # 测试是否创建成功

    8.使用GRANT命令为账户授权(需在root账户下操作)

    GRANT命令的常见格式以及解释
    命令 作用
    GRANT 权限 ON 数据库.表名称 TO 用户名@登录主机 对某个特定数据库中的特定表给予授权
    GRANT 权限 ON 数据库.* TO 用户名@登录主机 对某个特定数据库中的所有表给予授权
    GRANT 权限 ON *.* TO 用户名@登录主机 对所有数据库及所有表给予授权
    GRANT 权限1,权限2 ON 数据库.* TO 用户名@登录主机 对某个数据库中的所有表给予多个授权
    GRANT ALL PRIVILEGES ON *.* TO 用户名@登录主机   对所有数据库及所有表给予全部授权(需谨慎操作)

    注意:授权的同时如需创建用户并设置用户密码,用如下的命令

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

    首先为用户创建一个数据库(testDB):

    create database testDB;

    如果需要指定数据库的字符编码为utf8,用如下命令:

    create database testDB default charset utf8 collate utf8_general_ci;

    (1)授权zhangsan用户拥有testDB数据库的所有权限(某个数据库的所有权限):

    grant all privileges on testDB.* to 'zhangsan'@'localhost';

    flush privileges;     # 刷新系统权限表

    show grants for 'zhangsan'@'localhost';      # 查看账户 zhangsan 的权限

    (2)如果想指定部分权限给zhangsan用户,可以这样来写:

    grant select,update on testDB.* to 'zhangsan'@'localhost';

    flush privileges;     # 刷新系统权限表

    (3)授权zhangsan用户拥有所有数据库的某些权限:

    grant select,delete,update,create,drop on *.* to 'zhangsan'@'%';       # 注意:需要mysql.user表中zhangsan账户对应的Host的字段值为“%”,才能正确执行此命令

    # zhangsan用户对所有数据库都有 select,delete,update,create,drop 权限。

    # @'%' 表示对所有非本地主机授权,不包括localhost。

    # @'localhost' 表示对所有本地主机授权。

    9.使用REVOKE命令取消账户权限

    revoke select on *.* from 'zhangsan'@'localhost';       # 取消zhangsan对所有数据库的查询权限

    revoke all on testDB.* from 'zhangsan'@'localhost';     # 取消zhangsan对testDB数据库的所有权限

    show grants for 'zhangsan'@'localhost';      # 查看账户 zhangsan 的权限

    10.删除用户

    delete from user where User='zhangsan' and Host='localhost';

    flush privileges;

    或者也可以使用如下命令,删除账户及权限

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

    drop user '用户名'@ 'localhost';

    11.修改指定用户密码

    update mysql.user set authentication_string=password('新密码') where User='zhangsan' and Host='localhost';

    flush privileges;

    注意:在 MySQL5.7 中 user 表已经不再使用 password 来作为密码的字段了而改成了authentication_string。

  • 相关阅读:
    java8新特性LocalDate、LocalTime、LocalDateTime的学习
    vue在移动端使用alloyfinger手势库操作图片拖拽、缩放
    移动端设置滚动后显示滚动条
    springboot使用swagger2生成开发文档
    学习Validator验证框架总结
    对于线程池ThreadPool的学习总结
    apache-commons和guava的工具类
    Mac中anaconda中创建虚拟python环境,配置flask
    ubuntu系统中解决桌面分辨率不适配问题
    Linux服务器命令说明
  • 原文地址:https://www.cnblogs.com/opsprobe/p/9899862.html
Copyright © 2011-2022 走看看