MySQL的基本设定

  本次博文主要分为三部分:搭建数据库环境、数据库密码的更改、以及用户授权管理。

一、搭建数据库环境

1、安装mariadb-server

[root@dns /]#  yum  install  mariadb-server  -y

mariadb root密码忘记 mariadb数据库设置root密码_mysql

2、开启mariadb

[root@localhost /]#  systemctl  start  mariadb

mariadb root密码忘记 mariadb数据库设置root密码_mysql_02

3.编辑/etc/my.cnf文件,添加 skip-networking=1

     做该操作是因为初始情况下数据库的端口是打开的状态,如下图:

mariadb root密码忘记 mariadb数据库设置root密码_mysql_03

   为了安全起见,我们通过编辑配置文件的方式将端口关闭:

[root@localhost /]# vim /etc/my.cnf

mariadb root密码忘记 mariadb数据库设置root密码_mysql_04

    重启网络后再次查看端口的状态:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_05

4.数据库的安全初始化:

#  输入命令  mysql_secure_installation 开始数据库的安全初始化:

[root@localhost /]# mysql_secure_installation

# 接下来让输入当前数据库密码,如下图,因为第一次安装数据库后默认没有密码,按‘ ENTER’ 键下一步:

mariadb root密码忘记 mariadb数据库设置root密码_spring_06

    注意:MySQL数据库管理员的root和Linux账号的root是完全无关的。因为MySQL数据库软件也是个多用户的操作环境,只是在该软件内恰好有个管理者账号也是root而已。

# 接下来让我们设置数据库root用户的密码:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_07

# 下文的设置都选择 ‘ Y‘:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_08

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_09

# 5. 初始化已经完成,现在进行测试:

    使用root用户登陆数据库,出现下图字符表明成功登陆进数据库:

mariadb root密码忘记 mariadb数据库设置root密码_spring_10

二、数据库root用户密码的更改

########## 情况一: 已知root用户密码

[root@localhost /]# mysqladmin -uroot -predhat password 245room

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_11

     经过修改 旧密码已经不能 登陆,更改的新密码能够登陆数据库。

################ 情况二: 忘记root用户密码

# 1.关闭服务:

[root@localhost /]#  systemctl stop mariadb.service

# 2.进入数据库的安全模式:

   此步操作相当于linux系统的单用户模式,该操作可以跳过数据库系统认证授权表这一步,所以登陆时可以免密码登陆:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_12

      免密登陆mysql数据库:

mariadb root密码忘记 mariadb数据库设置root密码_mysql_13

#  3.修改root用户密码:

MariaDB [mysql]> UPDATE mysql.user SET password=password('redhat') WHERE User='root'

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_14

查看我们修改的root用户的密码:

mariadb root密码忘记 mariadb数据库设置root密码_spring_15

我们发现修改的密码为加密的格式,这种方式安全度高。

我们也可以将密码转化为明文的格式:

MariaDB [mysql]> UPDATE mysql.user SET password=('redhat') WHERE User= 'root';

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_16

mariadb root密码忘记 mariadb数据库设置root密码_spring_17

# 4.清空缓存信息(没有此步骤,则可能会出现新旧密码都能登陆,从而影响正常使用)

##  先查找与mysql相关的进程:

[root@localhost ~]# ps aux | grep mysql

mariadb root密码忘记 mariadb数据库设置root密码_mysql_18

## 然后结束这些进程:

mariadb root密码忘记 mariadb数据库设置root密码_spring_19

# 5. 测试修改密码是否成功:

   先开启服务:

[root@server ~]# systemctl start mariadb

     再用新密码登陆:

mariadb root密码忘记 mariadb数据库设置root密码_spring_20

   结果证明密码修改成功

三、mrsql的用户授权:

# 1. 添加数据库新用户spring,密码为123:

MariaDB [(none)]> create user spring@localhost identified by '123';        ##### 创建一个新用户spring ,密码为123

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_21

    查看添加的新用户spring:

MariaDB [(none)]> select user,host,password from mysql.user;

mariadb root密码忘记 mariadb数据库设置root密码_数据库_22

用新建的用户登录数据库:

[root@localhost ~]# mysql -uspring -p123

mariadb root密码忘记 mariadb数据库设置root密码_mysql_23

登陆成功

但是该用户对数据库无任何权限,什么操作也不能进行:

  如下图,显示库时不能看见任何库文件(注意information_schema这个文件是类似于数据库说明书的东西,不是库文件):

mariadb root密码忘记 mariadb数据库设置root密码_mysql_24

我们用命令查看spring 用户的权限情况:

MariaDB [(none)]> SHOW GRANTS for spring@localhost;

mariadb root密码忘记 mariadb数据库设置root密码_mysql_25

显示无任何权限。

# 2. 给新建用户授权浏览权限:

      第一步,用root用户登陆进数据库:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_26

      第二步,给用户spring授权:

MariaDB [(none)]> GRANT SELECT ON 246room.* TO spring@localhost;   ### 授予spring用户浏览246room这个库的所有数据的权限

mariadb root密码忘记 mariadb数据库设置root密码_mysql_27

        载入授权表:

mariadb root密码忘记 mariadb数据库设置root密码_数据库_28

       查看权限是否生效,如下图:

MariaDB [(none)]> SHOW GRANTS FOR spring@localhost;

mariadb root密码忘记 mariadb数据库设置root密码_mysql_29

      用spring户用测试权限是否生效:

mariadb root密码忘记 mariadb数据库设置root密码_spring_30

如下图,库文件已经能查看了:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_31

 如下图,能查看该库中的表格了:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_32

也能查看表格的内容了:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_33

# 3.撤销用户授权:

 先查看spring用户都有什么权限:

mariadb root密码忘记 mariadb数据库设置root密码_spring_34

   移除对spring用户的 SELECT和INSERT权限:

MariaDB [(none)]> REVOKE SELECT,INSERT ON 246room.* FROM spring@localhost;

mariadb root密码忘记 mariadb数据库设置root密码_数据库_35

  再次查看spring用户的权限时,如下图所示权限已被撤销:

mariadb root密码忘记 mariadb数据库设置root密码_mysql_36

# 4. 删除用户:

查看spring用户:

mariadb root密码忘记 mariadb数据库设置root密码_mariadb root密码忘记_37

删除spring用户:

MariaDB [mysql]> DROP USER spring@localhost;

mariadb root密码忘记 mariadb数据库设置root密码_mysql_38

再次查看用户时,spring用户已经不存在:

mariadb root密码忘记 mariadb数据库设置root密码_spring_39