Linux安装Mysql
系统环境:ubuntu16.04
apt-get update 更新软件列表
apt-get install mysql-server 安装mysql
在安装过程中根据提示设置数据库连接密码
服务操作:
systemctl start mysql 启动
systemctl stop mysql 停止
mysql -u root -p 本机连接数据库
开启远程连接
1、vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改bind-address =0.0.0.0
2、将host字段的值改为%,表示在任何客户端机器上能以root用户登录到mysql服务器
update user set host = '%' where user = 'root';
flush privileges; 刷新权限
3、其他机器终端远程连接
mysql -u root -h IP -p
举例:mysql -u root -h 10.10.10.10 -p
更改密码
1 mysqladmin -u用户名 -p旧密码 password 新密码
2 mysql>update user set password=password('123456') where user='root' and host='%';
mysql>flush privileges;
windows安装mysql
1、官网下载对应版本的安装包并解压
2、进入bin目录安装mysql :mysqld -install
3、添加bin路径到系统环境变量,并在服务中设置mysql启动项为手动
4、mysql操作:
net start mysql 启动
net stop mysql 停止
5、删除mysql残留服务
sc delete mysql
常用查询命令
select version(); 显示版本号
select database(); 显示当前数据库
select user(); 显示当前用户
select now(); 显示当前时间
select @@datadir; 数据库路径
select @@basedir; 安装路径
select @@version_compile_os; 操作系统版本
select @@version_compile_machine; 查看系统架构
select * from <表名>; 显示表中的详细数据
select count(*) from <表名>; 显示表中的数据量,即有多少行数据
show databases; 显示数据库
show tables; 显示表
show variables like '%datadir%'; 查看数据库安装路径
show variables like '%char%'; 查看数据库编码
show variables like '%plugin%'; 查看插件位置
desc 表名; 显示表的结构
数据操作命令
创建数据库: create database <数据库名>
删除数据库: drop database <数据库名>
使用数据库: use <数据库名>
创建表:
create table myclass(
id int(4) not null primary key auto_increment,
name char(20) not null,
degree double(16,2));
删除表: drop table <表名>;
清空表数据: truncate <表名>;
获取表结构: desc <表名>;
更改表名: rename table <原表名> to <新表名>;
插入数据:insert into myclass values(1,'Tom',66),(2,'Juliy',55);
删除数据:delete from myclass where id=1; 删除id为1的数据
更新数据:update myclass set degree=77 where id=2;
查询数据:select * from myclass; 显示所有数据
select id,name from myclass; 显示某些字段的数据
select name from myclass where id=1; 使用条件表达式进行筛选显示
增加字段:alter table myclass add passtest int(4) default '0';
删除字段:alter table myclass drop passtest(列名);
核心查询命令
查库:select schema_name from information_schema.schemata;
查表:select table_name from information_schema.tables where table_schema='库名';
查列:select column_name from information_schema.columns where table_name='表名';
查数据:select <列名> from 库名.表名;
使用group_concat()将多个字符串连接成一个字符串:
select group_concat(schema_name) from information_schema.schemata;
显示多个字段,中间可以用~(0x7e)隔开:
select group_concat(id,0x7e,name) from test.myclass;
limit 0,1限制输出,第一个数字代表位置,0即是从头开始显示;第二个代表显示数量:
select * from test.myclass limit 0,1;
手工注入猜测列数:order by <数字>--+
联合查询:union select 1,2,(查询命令),3,n--+