摘要
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