MySQL常用命令

连接服务器

使用 mysql 客户端工具连接 MySQL 服务器的命令行如下:

mysql [-h host_name] [-P port_num] [-u user_name] [-p] [-D db_name]
  • host_name 表示服务器主机名,默认为本机;
  • port_num 表示 MySQL 服务端口,默认为 3306;
  • user_name表示用户名,默认为当前操作系统用户;
  • -p 提示输入密码;
  • db_name 表示要连接的数据库。

创建用户

使用CREATE USER语句创建一个用户:

CREATE USER [IF NOT EXISTS] user_name@host IDENTIFIED BY 'auth_string';

导入导出数据

mysqldump -h hostname -u username -p database_name -P port > file.sql # 导出数据库
mysql -u username -p database_name < file.sql                         # 导入数据库
SHOW PROCESSLIST; # 显示当前正在运行的查询

用户权限

CREATE USER 'user'@'host'; # 创建用户
DROP USER 'user'@'host'; # 删除用户
GRANT ALL PRIVILEGES ON base.* TO 'user'@'host' IDENTIFIED BY 'password'; # 授予使用密码访问base数据库下所有表的所有权限
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'host' IDENTIFIED BY 'password'; # 授予使用密码访问base数据库下所有表的查询,插入,删除权限
GRANT ALL PRIVILEGES ON base.* TO 'user'@'host' WITH GRANT OPTION; # 授予数据库的**所有**权限
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'; # 删除base数据库的所有权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; # 删除**所有**数据库的权限
FLUSH PRIVILEGES; # 刷新权限 
# 如果您直接使用INSERT,UPDATE或DELETE之类的语句修改授权表,请使用** only **。

清空数据库

获取所有清空表数据sql语句 drop table 删除 delete from table

生成清空所有表的SQL

select concat('truncate table ',table_name,';') from information_schema.TABLES where table_schema='database';

#生成删除所有表的SQL

select concat('drop table ',table_name,';') from information_schema.TABLES where table_schema='database';

delete , drop 和truncate 区别

delete 每次删除一行,都在事务日志中为所删除的每行记录一项。产生rollback,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发,如果删除大数据量的表速度会很慢。
delete 删除表中数据而不删除表的结构(定义),同时也不释放空间。
truncate 只能操作表,将表中数据全部删除,在功能上和不带where子句的delete语句相同
delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除
delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://blog.itliujia.cn/info/20210557.html
-- 展开阅读全文 --
空调房
« 上一篇 05-10
结构化分析
下一篇 » 05-14

发表评论