一、数据库介绍
1、数据库相关概念
1、数据库相关概念
a、支持并发
b、锁的问题
c、对客户端请求进行认证
d、存取效率(降低IO次数)
数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)
数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件)
库(文件夹)=====》数据库
表(文件)
记录:抽取一个事物所有典型的特征/数据
egon,18,180,male,True
b、锁的问题
c、对客户端请求进行认证
d、存取效率(降低IO次数)
数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)
数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件)
库(文件夹)=====》数据库
表(文件)
记录:抽取一个事物所有典型的特征/数据
egon,18,180,male,True
数据
name='egon' age=18 height=180 sex="male" beutiful=True
name='egon' age=18 height=180 sex="male" beutiful=True
2、数据库管理系统/软件分类:
关系型:
有表结构,存取数据前必先定义表结构,存数据必须按照字段的类型或者约束来
典型代表:MySQL,Oracle,DB2,SQL server
非关系型:
存取数据都是采用key:value的形式
非关系型:Mongodb,redis,memcache
二、安装配置
1、安装
2、加环境变量
3、把mysqld服务端软件做成系统服务
注意:制作之前先把mysqld关掉
C:\Windows\system32>tasklist |findstr mysqld
mysqld.exe 8372 Console 2 454,916 K
注意:制作之前先把mysqld关掉
C:\Windows\system32>tasklist |findstr mysqld
mysqld.exe 8372 Console 2 454,916 K
C:\Windows\system32>taskkill /F /PID 8372
成功: 已终止 PID 为 8372 的进程。
成功: 已终止 PID 为 8372 的进程。
制作:
mysqld --install
查看:
windows+r
输入services.msc
4、统一字符编码
1、在mysql安装目录下新建my.ini文件
2、修改my.ini
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
windows+r
输入services.msc
4、统一字符编码
1、在mysql安装目录下新建my.ini文件
2、修改my.ini
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
default-character-set=utf8
[mysql]
default-character-set=utf8
default-character-set=utf8
3、重启mysqld
4、客户端登录,输入\s查看结果
4、客户端登录,输入\s查看结果
5、启动:
未制作系统服务的启动方式:
1、启动服务端
mysqld
未制作系统服务的启动方式:
1、启动服务端
mysqld
2、启动客户端
mysql -uroot -p -h127.0.0.1 -P 3306
如果是在本机登录mysqld服务端可以简写:
mysql -uroot -p
mysql -uroot -p -h127.0.0.1 -P 3306
如果是在本机登录mysqld服务端可以简写:
mysql -uroot -p
制作完系统服务后就可以鼠标点击启动或关闭mysql:
windows+r
输入services.msc
找到mysql,启动或关闭
windows+r
输入services.msc
找到mysql,启动或关闭
三、登陆与修改密码
1、修改密码
默认-uroot -p
用于设置密码
mysqladmin -uroot -p旧密码 password 新密码
2、破解管理员密码
1、先关闭mysqld服务端
2、以跳过授权表的方式在命令行中启动mysqld服务端
mysqld --skip-grant-tables
3、客户端直接以无密码的方式登录root用户,修改密码
mysql -uroot -p
mysql -uroot -p
mysql> update mysql.user set password=password("123") where user="root" and host="localhost";
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
4、在命令行中用taskkill杀死mysqld服务,然后正常启动mysqld
taskkill /F /PID 131312
taskkill /F /PID 131312
def password(mingwen):
import hashlib
m=hashlib.md5()
m.update(mimgwen)
return m.hexdigest()
import hashlib
m=hashlib.md5()
m.update(mimgwen)
return m.hexdigest()
四、授权表(mysql文件夹内的几张表)
user#该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段
db#该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段
tables_priv #该表放行的权限。针对:某一张表,以及该表下的所有字段
columns_priv #该表放行的权限,针对:某一个字段
1.创建用户的语句
create user 用户名@"主机地址" identified by "密码";
主机地址是客户端ip "%" / "127.0.0%" / "12.0.0.1"
create user 用户名@"主机地址" identified by "密码";
主机地址是客户端ip "%" / "127.0.0%" / "12.0.0.1"
2. 授权的语句 *******
语法: grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@主机地址;
all *.*
day41.*
day41.stu
语法: grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@主机地址;
all *.*
day41.*
day41.stu
select,insert
select(id,name),insert(id,name)
select(id,name),insert(id,name)
3.grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@主机地址 with grant option;
with grant option 授权GRANT命令 可以创建用户或者给其它用户授权。
特点: 如果授权时 用户不存在 直接自动创建用户
grant all on *.* to wd@'%' identified by "123" with grant option;
with grant option 授权GRANT命令 可以创建用户或者给其它用户授权。
特点: 如果授权时 用户不存在 直接自动创建用户
grant all on *.* to wd@'%' identified by "123" with grant option;
4.删除权限
revoke 权限的名称 on 数据库.表名 from 用户名@"主机名" ;
update mysql.user set Grant_priv = "N" where user ="scote" and host = "localhost";
删除创建用户权限
*.刷新权限表
flush privileges;
revoke 权限的名称 on 数据库.表名 from 用户名@"主机名" ;
update mysql.user set Grant_priv = "N" where user ="scote" and host = "localhost";
删除创建用户权限
*.刷新权限表
flush privileges;
5.删除用户
drop user 用户名@"主机地址";
drop user 用户名@"主机地址";
6.查看当前登陆用户:
select user();