1.用户认证
MySQL数据库的认证形式是:主机IP--》用户名--》密码。
创建用户的标准语句应该为:CREATE USER 'username' @'IP' IDENTIFIED BY 'password'
标准的登录命令语句为:mysql -u username -h IP -p
然后即可输入密码。
登陆后可以查看当前登录的用户:SELECT CURRENT_USER();
所有的数据库的用户信息都在mysql数据库中的user表中保存着,可查看。
2.数据库的用户
数据库的用户有两种类型,一种为root,一种为普通用户类型。
root是超级管理员拥有所有的权限,普通用户只有被赋予的权限。
1.寻找root密码:
找不到??嘿嘿
重新设置一个吧。
本方法来自官方文档:dev.mysql.com/doc/refman/…
适用范围:MySQL 8且使用installer的方式安装的MySQL。
这个方法的大概思路是:给MySQL服务启动的时候为MySQL指定一个初始化文件。
步骤1:创建一个初始化文件
在任意的目录创建文件:my-init.txt
例如:C:\my-init.txt
文件内容为一句指令:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
步骤二:寻找MySQL的my.ini文件的位置:
我的my.ini文件的位置为C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
步骤三:使用命令启动MySQL service
使用cmd,通过cd操作进入MySQL 的安装目录,然后再进入bin目录下,
输入命令:
mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" -init-file="C:\\my-init.txt"
由此命令可以看出my.ini为MySQL的配置文件,my-init.txt为手动指定的启动文件。
步骤四:
MySQL已经重新启动了,打开command line client 进行登录(这种方式默认为root用户登录)使用新密码进行登录。
2.普通用户可以有哪些权限
权限的种类:MySQL所有的权限可以分为三大类数据权限,管理权限,程序权限;28个。
权限的被检查者:用户,其中root用户具有全部的权限;使用命令【create user 'username' identified by 'password'】创建的用户没有任何权限。
权限的检查者:数据库,数据表,数据列,子程序。不同的检查者对应相关的权限。
查看用户拥有那些权限:
1.查看用户的全局权限:
在mysql数据库的user表中存储了各个用户对应的全局权限(何为全局权限就是可以对所有的权限检查者都有效的权限)。
use mysql;
select * from user where User="username"
2.查看数据库层级的权限:
在数据库mysql中的db表中存储了各个用户对某个给定数据库所具有的权限
use mysql;
select * from db where User = "username"
3.查看用户的表层级的权限:
在tables_priv表中
use mysql;
select * from tables_priv where User = "username";
4.查看列层级的权限:
在表columns_priv中
5.查看子程序层级的权限:
在表procs_priv中
3.为用户授权
grant permission on 权限检查者 to 'username';
3.一个完整数据库的组成
一个完整的数据库包含数据库,数据库表,数据,事务(InnoDB引擎的表),索引,自定义函数,存储过程。