MySQL命令大全

摘要

MySQL命令大全 MySQL 1. 登录与退出 mysql -uroot -p # 密码交互式登录 mysql -uroot -p123456 # 直接带密码登录(不推荐,留日志) mysql -h 127.0.0.1 -P3306 -u...

MySQL命令大全

MySQL

1. 登录与退出

mysql -uroot -p                          # 密码交互式登录
mysql -uroot -p123456                    # 直接带密码登录(不推荐,留日志)
mysql -h 127.0.0.1 -P3306 -uroot -p      # 指定主机、端口登录
mysql -S /tmp/mysql.sock -uroot -p       # socket方式登录
exit;                                    # 退出mysql客户端
quit;

2. 备份 & 恢复(mysqldump 外部命令,shell执行)

# 备份单个库
mysqldump -uroot -p 库名 > backup.sql
# 备份多个库
mysqldump -uroot -p --databases db1 db2 > backup.sql
# 备份所有库
mysqldump -uroot -p --all-databases > all_backup.sql
# 只备份某张表
mysqldump -uroot -p 库名 表名 > table.sql

# 导入sql(恢复)
mysql -uroot -p 库名 < backup.sql
# 在mysql客户端内导入
source /opt/backup.sql;

3. 库操作(SQL)

show databases;                          # 查看所有数据库
create database testdb default character set utf8mb4 collate utf8mb4_unicode_ci; # 创建库,utf8mb4支持emoji
use testdb;                              # 切换数据库
select database();                       # 查看当前所在库
drop database if exists testdb;          # 删除数据库

4. 表操作(SQL)

show tables;                             # 查看当前库所有表
desc user;                               # 查看表结构
show create table user;                  # 查看建表语句
create table ...;                        # 创建表
drop table if exists user;               # 删除表
rename table user to user_info;          # 重命名表
truncate table user;                     # 清空表数据(重置自增,不记日志)

5. DML 增删改查

select * from user;
select id,name from user where id=1;
insert into user(name,age) values('张三',20);
update user set age=21 where id=1;
delete from user where id=1;

6. 用户 & 权限(生产高频)

# 创建用户
create user 'test'@'%' identified by '123456';
# 授权库所有权限
grant all privileges on testdb.* to 'test'@'%';
# 单独授权查询权限
grant select on testdb.* to 'test'@'%';
# 刷新权限
flush privileges;
# 撤销权限
revoke all privileges on testdb.* from 'test'@'%';
# 删除用户
drop user 'test'@'%';
# 查看用户
select user,host from mysql.user;

7. 索引

show index from user;                    # 查看表索引
create index idx_user_name on user(name);# 创建普通索引
alter table user add unique uk_phone(phone); # 唯一索引
drop index idx_user_name on user;        # 删除索引

8. 事务

start transaction;                       # 开启事务
commit;                                   # 提交
rollback;                                 # 回滚

9. 状态、慢查询

show processlist;                        # 查看当前连接、执行sql
show full processlist;                   # 完整SQL
show variables like '%slow_query%';      # 慢查询配置
show status like 'Threads_running';

10. Docker 内 MySQL 常用操作

# 进入容器
docker exec -it mysql mysql -uroot -p
# 容器内备份
docker exec mysql mysqldump -uroot -p123456 testdb > backup.sql