一、搭建环境
选择环境:命令行+PHPStudy
小皮配置MySQL:
编码:utf8
引擎:InnoDB
端口:默认3306【不允许随意修改】
配置环境变量
二、常用脚本命令
1.没有登录之前
1)查看版本:mysql -V
2)查看帮助:mysql --help/mysql -?
3)登录:mysql -hIP地址 -P端口号 -u用户名 -p密码
说明:
-hIP地址:连接到制定IP的数据库
-P端口号:需要连接的数据服务的对应端口号
-u用户名:需要登录的用户的用户名
-p密码:需要登录的用户的密码
例如:
连接本机:mysql -hlocalhost -P3306 -uroot -p
连接本地端口没有修改:mysql -uroot -p
远程数据库服务【局域网内】:
mysql -hIP地址 -P3306 -uroot -p
【需要对当前用户设置允许远程操作】
4)退出:exit/quit
5)修改密码:
登录以后修改自己的密码
set password = password(新密码)
【修改密码的方式很多】
2.业务操作的命令脚本
1)查看帮助:?/help
2)查看版本:select version();
3)查看当前用户:select user();
4)查看当前用户所拥有的数据库:show databases;
5)选择数据库:use 数据库名;
6)当前数据库:select database();
7)显示当前数据库所有的表:show tables;
8)查看某一个表的结构:desc 表名字;
9)查看权限:show privileges;
10)查看数据库支持的引擎:show engines;
11)加密工具:select password(需要加密的内容);
12)创建数据库:create database 数据库名;
13)删除数据库:drop database 数据库名;
三、用户管理
1.为什么需要进行用户管理
数据库本身出现的原因是:
管理数据问题:文件操作数据不方便+数据不安全
文件数据操作不方便
数据不安全【数据库帮我管理,验证身份,账号+密码】
所有需要用户信息验证,多用户分工管理——用户管理
2.认识mysql数据库的用户
查看所有用户:select host,user from mysql.user;
3.解释MySQL的用户以及数据库管理方式
MySQL数据库服务提供几个默认的数据库来初始化管理信息
sys:数据库软件服务的一些默认的设置
mysql:数据库提供一个用户,数据库等数据的管理
db表:存储所有的数据库的信息
user表:用来管理用户信息
4.创建新的用户
create user 用户名@主机名/IP地址 identified by 密码
说明:
用户名要求:【推荐使用Java的标识名命名规则】
不能使用中文
不能太长
不能使用关键字
不要使用数字或者特殊符号开头
最好不要包含特殊字符
主机名/IP地址:表示当前用户可以被哪台主机使用访问=
有三种值:
1.localhost或者172.0.01:表示当前用户只能被当前数据库服务器所在的电脑设备上的工具登录访问
2.%:表示允许除了本地以外的其他设备访问
3.固定IP:表示只有这个IP地址所在的设备可以访问使用此用户登录当前的数据库服务
密码:不能以数字开头
备注:
1)新创建的用户没有任何权限操作资源
2)开始的时候只有root管理员是有所有权限的
3)不指定主机名或者IP地址时,默认是%
4)单引号和双引号都表示字符串,但是推荐使用单引号
5.登录
mysql -hIP地址 -P主机名 -u用户名 -p密码
6.查看用户信息
所有用户:select user,host from mysql.user;
当前用户:select user();
7.删除用户
drop user 用户名@'主机名或者IP地址'
只能用有删除权限的用户删除其他用户
8.退出登录
quit/exit
四、用户权限
创建的新用户没有任何权限
如果想让用户做一些事情,需要赋予用户权限
MySQL提供了以下的权限:
1.所有的权限【管理有的】
all或者all privileges
2.查看自己的权限:show grants;
新用户默认拥有的权限:usage
usage:no privileges 没有权限
3.查看他人权限
【首先确定当前用户是否是管理员或者是否拥有查看其他用户权限的权限】
show grants for xp@localhost;
4.查看数据库所有的权限
【首先确定当前用户是否是管理员或者是否拥有查看其他用户权限的权限】
show privileges;
5.权限关系
| 操作的权限命名 | 数据库中实际管理权限的命名 |
|---|---|
| select | select_priv |
| create_user | create_user_priv |
6.常见的权限
数据操作
select:查看
delete:删除
update:修改的权限
insert:添加数据的权限
表格数据库结构操作
1)create:创建表,数据库,用户的权限
create user
create database
create table
2)drop:删除表,数据库,用户的权限
drop user
drop database
drop table
3)alter:修改表,数据库,用户的权限
alter user
alter database
alter table
五、赋予用户权限【grant】
语法:
grant 权限1 ,权限2 ... on 数据库.表名 to 用户名@主机名 【with grant option】
说明:
权限列表:可以同时给用户赋予多个权限,使用逗号分隔开
数据库名.表名:可以指定哪些数据库或者哪些表,当前用户可以有对应的操作权限
所有的数据库和表都可以操作:* . *
【with grant option】:权限最初的拥有者是root管理员,管理员赋予权限的时候没有指定with grant option,则被赋予权限的用户,不允许给其他用户赋权限
注意:
MySQL数据库中,权限的给定不是绝对的,例如设置了create user权限,则同时开启alter user,drop user
六、收回用户权限【revoke】
语法:
revoke 权限列表 on 数据库.表名 from 用户名@主机名/IP地址
收回赋予权限的权限
revoke grant option from 用户名@主机名/IP地址
收回所有权限
revoke all from 用户名@主机名/IP地址
七、修改用户密码
1.当前用户修改自己的密码【先登录当前用户】
set password=password("新密码");
update 用户名 set password
2.管理员修改其他用户的密码
set password for 用户名@主机名=password("新密码");
3.既可以修改自己的密码也可以修改他人的密码
update 用户名 set password=password("新密码") where user="用户名" and host="主机名或者IP地址";