mysql用户授权、备份与恢复、优化配置

本文介绍MySQL的用户管理、权限配置、日志设置等常用命令,涵盖慢查询优化、锁状态查询及数据库备份恢复方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql常见配置,及数据库层面性能调优及问题排查说明

一 用户管理及授权

-- 创建用户
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'passwrd';
-- 查看所有用户
    select * from mysql.user;
-- 删除用户
    DROP USER 'username'@'localhost'; 
-- 授予用户通过外网IP对该数据库的全部权限
    grant all privileges on imp_commondb.* to 'username'@'%' identified by 'passwrd';
-- 赋予用户所用权限
    GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY "passwrd"; 
-- 赋予用户所用权限
    GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY "passwrd"; 
-- 删除用户对数据库的操作权限
    REVOKE all privileges ON imp_commondb.* FROM 'username'@'%';
-- 赋权后,需要刷新才能生效,也可重启数据库
    FLUSH PRIVILEGES;

二 .conf或者 .ini相关配置

-- 慢sql日志配置 
    long_query_time=2 
    slow-query-log=On  
    slow_query_log_file="E:\Program Files\MySQL\MySQL Server 5.5\log\mysql_slow_query.log" 
-- 记录数据库启动关闭信息,以及运行过程中产生的错误信息
    log-error="E:\Program Files\MySQL\MySQL Server 5.5\log\myerror.log"
-- 记录除select语句之外的所有sql语句到日志中,可以用来恢复数据文件
    log-bin=E:/mysqllog/bin
-- 配置主键偶数自增:
    auto_increment_increment=2
    auto_increment_offset=2
-- 当忘记mysql用户名登录密码时,在my.ini加入下面命令,强行免密码连接,连接后在mysql.user表中手动添加已知用户后,重新启动mysql服务,用已知用户登录,进行赋权等操作
    skip-grant-tables

三 配置参数查询

-- 查看慢查询时间
    show variables like "long_query_time";
-- 查看慢查询配置情况
    show status like "%slow_queries%";
-- 查看慢查询日志路径
    show variables like "%slow%";

四 mysql问题排查及性能优化命令

-- 通过如下sql语句,来查看一共执行过几次慢查询
    show global status like '%slow%';
-- 查看等待锁的事务
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 
-- 查看正在锁的事务
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 
-- 查询是否锁表
    show OPEN TABLES where In_use > 0;
-- 查询mysql进程
    show full processlist;(kill id 强制杀死进程)
-- mysql客户端查看最后一个死锁信息
    show engine innodb status ;
-- 命令窗口或者xshell查看mysql最后一个死锁信息
    show engine innodb status \G;
-- 查询某个sql的执行计划
    explain sql语句

五 mysql 数据库备份与还原

-- 备份整个数据库(包含数据):
    mysqldump -uroot -p'root' dbname > /opt/dbname.sql 
-- 备份整个数据库(不含数据):
    mysqldump -uroot -p'root' -d dbname > /opt/dbname.sql 
-- 备份多张表(包含数据):
    mysqldump -uroot -p'root' dbname tablename1 tablename2 tablename3 > /opt/dbname.sql
-- 备份数据库,使用参数(--ignore-table)排除多个表:
    mysqldump -uroot -p'root' --ignore-table=dbname.table1 --ignore-table=dbname.table2 dbname > /opt/dbname.sql
-- 还原数据库(-f参数,忽略错误):
    mysqldump -uroot -p'root' -f dbname <  /opt/dbname.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值