MySQL

发布时间 2023-06-09 10:50:57作者: 谭五月

建库

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;