您的位置:首页 > 数据库 > MySQL

mysql 常用命令

2020-02-15 11:05 288 查看

目录

建库

用户

授权

其它

mysqldump

 问题

建库

    create database name; 创建数据库
    drop database name; 直接删除数据库,不提醒
    mysqladmin drop databasename; 删除数据库前,有提示。
    mysql>show databases;                     显示所有数据库

用户

    新建用户
        格式:create user "username"@"host" identified by "password";
        1.mysql->create user 'test'@'localhost' identified by '123';
        2.mysql->create user 'test'@'192.168.7.22' identified by '123';
        3.mysql->create user 'test'@'%' identified by '123';
        说明:host="localhost"为本地登录用户,host="ip"为ip地址登录,host="%"所有用户

    删除用户
drop user 'username'@'host';

    查看现有用户:
        mysql> select host,user,authentication_string from mysql.user;
        
    修改密码:
        shell>mysql -u root -p
        mysql> update user set password=password(123456) where user=’root’;
        mysql> flush privileges //刷新数据库


授权

     格式:grant privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
  (1)GRANT命令说明:
   priveleges(权限列表),可以是all priveleges, 表示所有权限,也可以是select, insert, update, delete, create,drop等权限,多个权限的名词,相互之间用逗号分开。
   on用来指定权限针对哪些库和表。
   *.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。
    to 'username'@'host' :@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。
       identified by指定用户的登录密码,该项可以省略。
        WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
    (2)删除授权:
            mysql> revoke all privileges on *.* from root@”%”;
            mysql> delete from user where user=”root” and host=”%”;
            mysql> flush privileges;

2.授权原则说明:
   a、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。
    b、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。
    c、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。
    d、为每个用户设置满足密码复杂度的密码。
   e、定期清理不需要的用户。回收权限或者删除用户。

其它

    shell>mysql -u root -p
    mysql>use databasename;                     选择数据库        
    mysql>describe tablename;                     表的详细描述
    mysql>select version(),current_date;         显示当前mysql版本和当前日期
    mysql>show databases;                     显示所有数据库
    mysql>show tables;                         显示数据库mysql中所有的表:先use mysql;然后
    mysql>alter table t1 rename t2;        重命名表
    

mysqldump

    备份数据库
    shell> mysqldump -h host -u root -p dbname > dbname_backup.sql
    恢复数据库
    shell> mysqladmin -h myhost -u root -p create dbname
    shell> mysqldump -h host -u root -p dbname < dbname_backup.sql

    如果只想卸出建表指令,则命令如下:
    shell> mysqladmin -u root -p -d databasename > a.sql
    如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
    shell> mysqladmin -u root -p -t databasename > a.sql

    那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
    mysqldump -T./ phptest driver

    其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。

 问题

     (1) unable to load authentication plugin 'caching_sha2_password'
         处理:alter user 'mytest'@'%' identified with mysql_native_password by 'mytest';

    4000
  • 点赞
  • 收藏
  • 分享
  • 文章举报
weett 发布了0 篇原创文章 · 获赞 0 · 访问量 326 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: