一、启停
说明: 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
三、基础操作命令
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.使用工具
还原:
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;"