nqinx是web前端服务端
负载均衡(软件)可以将用户请求调度到几台机器的nqinx上去做 ,一般都有两个负载均衡,一个做备用
硬件的要比软件的好,但是一般公司都用软件实现
数据库软件其实也是一个服务端
关系型数据库,每一个字段定义一个值
表就相当于一个文件
表中的一条记录就相当于文件中的一行内容
文件中的一个文件夹 就相当于数据库中的一个库
安装数据库,指的是安装一个数据库管理系统
建一个数据库,指的是创建一个'文件夹'
数据库管理系统
mysql,orcale,db2,mariadb,sql server(关系型数据库)
打开连接
切到一个文件夹下/找到一个文件/打开文件/读写记录/关闭文件(优化,加锁处理,权限认证)
断开连接
非关系型数据库:数据都是以key=value的形式存放的(放在内存中,取得速度非常快)
应用:用户登录数据 redis/mecache 有持久状态,会把文件存硬盘里也一份断电还可以重新找到
可以用户登录时候先去非关系型数据库中找用户登录信息如果有就不用去数据库找,如果没有
就去数据库找,认证成功的话写到redis里面
用户登录时候只登录一次就可以保存登录状态
数据库服务器:安装有数据库管理系统软件的一台机器
查找当前用户:select user();
实现远程登录
不能用-uroot登录远程连接
登录的话 mysql -u账号 -p密码 -h 192.168.11.55
这样一个类型最后是IP地址
对登录账号授权
grant all privileges
grant all on db1.t1 to 'egon'@'%';
grant all on *.* to 'egon'@'%';
flush privileges;刷新权限
创建账号同时授权
grant all on *.* to 'alex'@'%' identified by'123';
quit q exit都可以退出
默认账号没有任何权限,得管理员登录
ctrl-c直接断开连接了
c不执行这条语句
‘号不结束的话必须再加一个单引号
帮助信息help 可以help create这样查看语法
帮助信息中如果有中括号,就是可选
创建账号
@localhost 是本地账号
@'192.168.32.*'
这个网段32后面不管是几都能登录
如果不是*是具体数字就是只能那台
@'%'是所有机器都能登录
在密码中
create user 'egon'@'192.168.32.*' identified by '123';
也可以选别的方式来当密码,帮助信息中有
修改管理员密码
mysqladmin -uroot password修改的密码
mysqladmin -uroot -p密码 password修改的密码
破解密码
两种干死进程的方式:tskill mysqld
taskkill -f/PID 5320(进程端口)
mysqld --skip--grant--tables 跳过授权,不加载授权表
进来是管理员账号,无需密码
update mysql.user set password=password(‘’)所有用户改成空
update mysql.user set password=password(‘’) where user='root' and host='localhost';
指定用户改成空
改完权限都刷新一下权限
操作库(文件夹)
- 增
create database db1 charset utf8;
- 查
show databases;
show create database db1;
- 改
alter database db1 charset gbk;
- 删
drop database db1;
操作表(文件)
切换到某一个库(文件夹)
use db1;
select database();#查看当前所在的库
- 增
create table t1(id int,name char(10),age int)egine=innodb default charset utf8; #最后一个字段一定不要加逗号
- 查
show tables;
show create table t1;
desc t1;#查看表结构
- 改
alter table t1 charset gbk;
alter table t1 add sex char;
alter table t1 drop sex;
alter table t1 modify sex char(6);
alter table t1 change sex Sex char(6);
- 删
drop table table66;
操作记录
- 增
insert into db1.t1(id,name,age,Sex) values
(1,'egon1',18,'male'),
(2,'egon2',28,'male'),
(3,'egon3',38,'male'),
(4,'egon4',48,'male');
insert into db1.t1(id,name) values(5,'egon5');
- 查
select name,id from db1.t1;
select * from db1.t1;
- 改
update db1.t1 set name='EGON4';
update db1.t1 set name='alexsb' where id=5;
update db1.t1 set name='aaaa' where Sex='male';
- 删
delete from db1.t1; #仅仅只有删除记录的效果,没有把表重置到初始状态的功能
truncate db1.t1; #清空+重置
delete from db1.t1 where id=3;
delete from db1.t1 where name='dddd';
自增id
create table t1(id int not null unique auto_increment,name char(4)); #自增的字段必须是
insert into db1.t1(name) values
('egon1'),
('egon2'),
('egon3'),
('egon4');