建库
CREATE DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建用户
CREATE USER 'userName'@'localhost' IDENTIFIED BY 'eKw5Ap9EBwjIRc_AO2!Y84';
userName: 你将创建用户的名字
localhost : 本地用户,如果想让该用户可以从任意远程主机登陆,可以使用%
password : 密码
授权
GRANT all ON databaseName.* TO 'userName'@'%';
GRANT ALL PRIVILEGES ON databaseName.* TO 'userName'@'ip' IDENTIFIED BY 'password' WITH GRANT OPTION;
-- 授权后必须刷新权限才能生效
flush privileges;
使得 userName 用户获取对 databaseName 这个数据库的所有表进行操作的权限
查看权限
-- '\G' 表示以竖向的形式展示, 方便查看
select * from mysql.user where user='userName'\G;
删除用户
DROP USER 'username'@'localhost';
撤销权限
REVOKE all ON databaseName.tableName FROM 'userName'@'localhost';
还原数据
source workDispatcher.sql
增加字段
ALTER TABLE tableName ADD COLUMN columnName VARCHAR(20) DEFAULT NULL COMMENT '';
修改密码
set password for '用户名'@'%' = password('新密码');
备份数据库
mysqldump -u root -p DB_NAME > /root/DB_NAME.sql
binlog日志相关
# 查看当前的日志名称
show master status;
# 查看binlog日志
mysqlbinlog -v BIN_LOG_FILE_NAME
--start-positon=11001
--stop-position=11004
--start-datetime='2022-10-10 23:27:27'
--start-datetime='2022-10-10 23:29:00'
# 使用binlog日志还原数据
# 还原之前最好先使用 flush logs 开启新的binlog日志,以便确定业务数据的最后边界
mysqlbinlog -v --start-positon=11001 --stop-position=11004 BIN_LOG_FILE_NAME | mysql -u root -p
重新统计索引扫描行数
analyze table tableName
强制使用索引
强制使用索引a
select * from t force index(a) where (a between 1 and 1000) and (b between 50000 and 100000) order by b limit 1;