一、启停

说明: docker部署

docker ps -a| grep mysql

docker start/stop name

二、客户端

1、命令行连接

mysql -h 127.0.0.1 -P 3306 -uroot -p

参数 说明
-h 数据库地址
-P 端口
-u 用户
-p 密码
-D 库名
--help 帮助

2、工具连接

如navicat,需要自行破解

下载地址:https://www.navicat.com.cn/download/direct-download?product=navicat17_premium_cs_x64.exe&location=1

img

三、基础操作命令

1、库管理

CREATE database mytest
#查询库
show DATABASES
#选择库
use mytest
#删除库
DROP DATABASE mytest

2、表管理

#新建表格
create TABLE test_tb(i int,j char)
#查看表结构
desc test_tb
#插入数据
insert into test_tb values(500,"C")
#查询表数据
select * from test_tb 
select * from test_tb  where i = 200;
#查询前五行
select * from test_tb LIMIT 5
#更新数据
update  test_tb SET i=1000 where i=100;
#删除某条数据
delete from test_tb where i=1000;
#清除表数据
DELETE FROM test_tb
#删表
drop TABLE test_tb;

3、用户管理

#创建用户
CREATE USER 'ysh'@'10.10.10.206' IDENTIFIED BY 'Qwer@123';
#查询用户
SELECT User, Host FROM mysql.user;
#删除用户
DROP USER 'ysh'@'10.10.10.206';
#修改密码
ALTER USER 'ysh'@'10.10.10.206' IDENTIFIED BY '123456';
#赋权
GRANT ALL PRIVILEGES ON mytest_db.* TO 'ysh'@'10.10.10.206';
#撤销权限
REVOKE ALL PRIVILEGES ON mytest_db.* FROM 'ysh'@'10.10.10.206';
#查看权限
SHOW GRANTS FOR 'ysh'@'10.10.10.206';
#刷新权限
FLUSH PRIVILEGES

四、备份

1.使用工具

img

还原:

img

2.命令行备份

mysqldump --help

说明:不同版本有区别, 具体通过--help查看

参数 说明
-A, --all-databases 备份所有数据库,含create database
-B, -databases db_name… 指定备份的数据库,包括create database语句
-E, --events 备份相关的所有event scheduler
-R, --routines 备份所有存储过程和存储函数
-x, --lock-all-tables 锁定数据库中所有的表.
-l, --lock-tables 对于每个要dump的数据库,在dump之前锁定所有要dump的表,默认为on,--skip-lock-tables选项可禁用.。对于MyISAM下,用Read Local锁定的表是允许insert操作的,对于支持事务的表例如InnoDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表
--triggers 备份表相关的触发器,默认启用,用--skip-triggers,不备份触发器
--master-data[=#] 此选项须启用二进制日志。1:所备份的数据之前加一条记录为change master to语句,非注释,不指定#,默认为1 2:记录为注释的change master to语句
--single-transaction 该选项Innodb中推荐使用,不适用MyISAM
-F, --flush-logs 备份前滚动日志,锁定表完成后,执行flush logs命令,生成新的二进制日志文件,配合-A时,会导致刷新多次数据库
-d, --no-data 只备份表结构
-t, --no-create-info 只备份数据,不备份create table
-n, --no-create-db 不备份create database,可被-A或-B覆盖
--flush-privileges 备份mysql或相关时需要使用
-f, --force 忽略SQL错误,继续执行
#备份所有库
mysqldump -uroot -p  --all-databases > sqlbak.sql
#备份单库
mysqldump -uroot -p  -B mytest > bakmytest1.sql
#只备份表结构
mysqldump -uroot -p123456  -B mytest -d > bak.sql
#只备份表数据(创建库的还是有)
mysqldump -uroot -p123456  -B mytest -t > bakfile.sql
#不备份create database
mysqldump -uroot -p123456  -B mytest -n > bakfile.sql
#备份表
mysqldump -uroot -p123456  -B mytest --tables test_tb > table.sql
 
#恢复(注意如果恢复到新的库名字里, 需要修改sql)
mysql -uroot -p123456 <  bakmytest.sql 

#不进入库,直接查询
mysql -uroot -p123456 -D mytest -e "select * from test_tb;"