MySQL常用命令(一)

写在前面的话:

本系列文章旨在,梳理mysql 常用的指令,不采用常规的 sql 语言(ddl,dml..)分类顺序进行,

而是采用由大到小,由上层应用到底层实现的方式进行梳理:

用户>>库>>表>>视图>>函数>>存储过程>>索引>>存储引擎

希望通过该过程,在查缺补漏的同时,对mysql 能有更系统的认识

语法规范:

  • 常用的关键字需要大写,库名、表名、字段名称等使用小写
  • SQL语句支持折行操作,拆分的时候不能把完整单词拆开
  • 数据库名称、表名称、字段名称不要使用MySQL的保留字,如果必须要使用,需要用反引号``将其括起来
  • 命令行结束符默认使用;或\g来结束

常规操作

net start mysql --启动mysql服务
--默认登录
mysql -uroot -p --登录
mysql -uroot -p <password>--登录明文密码登录
--远程登录
mysql -h <host> -p <password> -D <bd_name> -u<user> --远程登录同时切换指定数据库
--退出mysql命令行
exit; 
quit; 
 \q 
--查看帮助手册
help
\h
?+相关关键字
--获取mysql版本号
    --登录前
    mysql  -V
    mysql  --version
    --登陆后
    SELECT VERSION();
    STATUS;

用户相关操作

SELECT USER();--获得登录用户

--创建用户(一)
CREATE USER '<username>'@'<host>' IDENTIFIED BY [PASSWORD] '<password>';
--username:将创建的用户名
--host:主机名,用于指定用户可以在哪个主机上登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%,若该参数为空则默认为%
--password:该用户的登陆密码,密码可以为空(为空时可省略 IDENTIFIED BY)
--[PASSWORD] 可选参数,一般为安全考虑可通过 PASSWORD 关键字使用密码的哈希值设置密码:
--1.执行:
SELECT password('<password>');
--2.得到输入参数<password> 的哈希值<hash_pass>,然后执行:
CREATE USER '<username>'@'<host>' IDENTIFIED BY PASSWORD '<hash_pass>';

--创建用户(二)
--1.向user表中插入数据:
INSERT INTO mysql.user(host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject)
VALUES ('<host>', '<username>', password('<password>'), '', '', '');
-- 注意!! user 表中的 user 和 host 字段是区分大小写的
--2.使用 FLUSH 命令让用户生效
FLUSH PRIVILEGES;

--创建用户(三)
GRANT <priv_type> ON <db_name>.<table_name> TO '<username>'@'<host>' IDENTIFIED BY [PASSWORD] '<password>';
--<priv_type>: 用户权限
--<db_name>.<table_name> :指定权限使用范围,即用户对指定数据库的指定表有定义的权限,*.* 代表所有数据库的所有表
--'<username>'@'<host>':用法同方式一
--[PASSWORD] '<password>':用法同方式一

--重命名用户
RENAME USER <username> TO <new_username>;

--删除用户
DROP USER <username>; --直接删除

DELETE FROM mysql.user WHERE user='<username>' AND host='<host>'; --删除user中的记录
FLUSH PRIVILEGES;--刷新权限

--用户权限操作
SHOW GRANTS;--查看当前已登录用户权限
GRANT <priv_type> ON <db_name>.<table_name> TO '<username>'@'<host>'; --授权
FLUSH PRIVILEGES; --刷新权限

revoke <priv_type> ON <db_name>.<table_name> FROM '<username>'@'<host>'; --撤销授权
FLUSH PRIVILEGES; --刷新权限

--<priv_type>:权限类型
--select
--update
--delete
--insert
--drop
--alter
--references:外键权限
--index:操作索引权限
--create temporary tables:创建临时表权限
--create view:创建视图
--show view:查看视图源代码
--execute:操作函数权限
--all [privileges]:所有权限
--多个权限之间以逗号分隔
--<db_name>.<table_name>:权限作用范围
--'<username>'@'<host>' :同上

SELECT user,host FROM mysql.user; --查看所有用户和对应的ip

用户密码操作

--修改用户密码
--1.直接使用命令修改
SET PASSWORD FOR <username>@<localhost> = password('<new_pass>'); 

--2.修改user表的记录
USE mysql;
UPDATE user SET password=password('<new_pass>') WHERE user='<username>' and host='<host>';
FLUSH PRIVILEGES;

--3.命令行
--/System32> mysqladmin -h<host> -u<username> -p<old_pass> password <new_pass>



---忘记密码...怎么办?
--1.关闭 mysql 服务
--2.进入mysql/bin 目录
--3.输入:
--/mysql/bin> mysqld --skip-grant-tables
--skip-grant-tables :启动MySQL服务的时候跳过权限表认证
--4.打开新终端,进入mysql/bin 目录
--5.打开mysql命令行,输入:
  USE mysql;
  UPDATE USER SET password=password('<new_pass>') WHERE user='<username>' and host='<host>';
  FLUSH PRIVILEGES;

数据库操作

SELECT DATABASE();--得到当前打开的数据库
SHOW DATABASES;--查看数据库列表
CREATE DATABASE <db_name>; --创建数据库
DROP DATABASE <db_name>; --删除数据库
USE <db_name>; --切换数据库
SHOW CREATE DATABASE <db_name>; --查看建库语句

小节之外的话 :

本小节主要梳理了,常规操作包含 mysql命令行的登入与登出,用户权限操作,用户密码操作,数据库相关操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值