RSS订阅懒人笔记
你的位置:首页 » mysql » 正文

mysql常用命令

选择字号: 超大 标准 发布时间:2017年08月15日 | 作者:yang | 0个评论 | 364人浏览


开启bin日志,会记录一些操作日志

log-bin=mysql-bin 

查看mysql-bin.00001

mysqlbinlog   mysql-bin.00001

分割binlog日志

mysqladmin -u root -p123456 -S /data/3306/data/mysqld.sock flush-log

可以把日志导出

mysql-bin.00001 > /home/bin00001.sql

然后先把数据库备份 编辑删除操作失误的命令导入


mysqlbinlog --no-defaults --base64-output=decode-rows -v --start-datetime="2019-11-25 00:00:00" --stop-datetime="2019-11-26 00:10:01"   binlog.000026


常用mysql备份脚本

#!/bin/bash
find /data/bakmysql -mtime +7|xargs rm -rf
fulltm=`date +%y%m%d%H%M`
for i in `mysql -uroot -p'password' -NBe "show databases;"|grep -v schema|grep -v mysql|grep -v ini|grep -v performance|grep -v gm`
do
        mysqldump -uroot -p'123456789' --master-data=2 $i  > /data/bakmysql/${i}_${fulltm}.sql
done
mysql
-u 用户名
-p 密码 
-h 服务器IP地址 
-P 服务器端MySQL端口号
-D 数据库名  
-e 执行命令
mysqladmin variables -p  获取数据库信息 
show variables like 'character_set%'; 查看数据库字符集
mysqladmin shutdown  linux下关闭mysql的命令
show grants for root@'localhost';  查看用户权限
WITH GRANT OPTION; 赋予授权
select user,host,password from mysql.user order by user asc; 排序asc升序,desc倒序
reset master;   #重置所有的日志

更改密码

use mysql;
UPDATE user SET Password=PASSWORD('252823') where USER='root';
flush privileges;

查看用户所有数据库,选择数据库查看所有表

desc 表名;
show processlist;
show databases;
show tables;
select * from tablename;
select * from tablename where id='52';
select * from tablename where id like '52';
update abc set ef="god" where id='1';
status;查看当前状态
select  database();查看当前数据库
select version();数据库版本
select user();当前用户
select now();当前时间
select * from table order by uid desc limit 0,10;

mysql授权添加用户

grant all PRIVILEGES on db.* to user@'%' identified by 'password';  
flush privileges;

授权用户拥有授权权限
grant all PRIVILEGES on db.* to user@'%' identified by 'password WITH GRANT OPTION;

清除权限(但不会删除数据库用户)

revoke all privileges on *.* from user@'%';

查看用户

select user,host,password from mysql.user;

删除用户和空用户(默认随机用户都可以登录)

delete from user where user = "user" and host = "%";

DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;

清空表内容

truncate table tablename;

查看数据库大小

1.查看数据库的大小

use 数据库名

SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH) FROM information_schema.TABLES where TABLE_SCHEMA='数据库名';
sELECT sum(DATA_LENGTH+INDEX_LENGTH)/1024/1024 FROM information_schema.TABLES where TABLE_SCHEMA='s888';

得到的结果是以字节为单位,除1024为K,除1048576为M。

2.查看表的最后mysql修改时间

select TABLE_NAME,UPDATE_TIME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='数据库名';

可以通过查看数据库中表的mysql修改时间,来确定mysql数据库是否已经长期不再使用。

3.查看数据库中各个表占用的空间大小

如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:

TABLE_SCHEMA : 数据库名

TABLE_NAME:表名

ENGINE:所使用的存储引擎

TABLES_ROWS:记录数

DATA_LENGTH:数据大小

INDEX_LENGTH:索引大小

其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。

所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。

SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名'
sELECT sum(DATA_LENGTH+INDEX_LENGTH)/1024/1024 FROM information_schema.TABLES where TABLE_SCHEMA='s888' AND TABLE_NAME='user';

4.查看表的最后mysql修改时间

select TABLE_NAME,UPDATE_TIME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='数据库名';

可以通过查看数据库中表的mysql修改时间,来确定mysql数据库是否已经长期不再使用。


标签:

欢迎加QQ:2908190019

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。