Linux中MySQL的环境设定、用户权限管理、root密码重置

MySQL的基本设定

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

(一)搭建环境

1安装mariadb-server

[[email protected] ~]# yum install mariadb-server -y

Linux中MySQL的环境设定、用户权限管理、root密码重置

2、开启mariadb

[[email protected] ~]# systemctl start mariadb

3、编辑/etc/my.cnf文件,只是添加一句,其他不变

[[email protected] ~]# vim /etc/my.cnf   

 (添加一句)  skip-networking=1

Linux中MySQL的环境设定、用户权限管理、root密码重置

4、重启mariadb

[[email protected] ~]# systemctl restart mariadb

5、设置数据库登陆root登陆密码

[[email protected] ~]# mysql_secure_installation

Linux中MySQL的环境设定、用户权限管理、root密码重置

注意:初始化的myaql数据库管理员并没有任何密码,按下回车键即可

6、设置密码,一次设置,一次确认

Linux中MySQL的环境设定、用户权限管理、root密码重置

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

7、为了系统安全,以下的我都选择y

Linux中MySQL的环境设定、用户权限管理、root密码重置

8、验证,如下显示则说明设置成功

[[email protected] ~]# mysql -uroot -p

Linux中MySQL的环境设定、用户权限管理、root密码重置

(二)数据库密码的管理

修改root密码

情况一:已知root密码

这里以已知root密码为redhat为例

[[email protected] ~]# mysqladmin -uroot -predhat password linux

验证更改密码:可以看到新密码linux已经生效

Linux中MySQL的环境设定、用户权限管理、root密码重置

情况二:遗忘root密码

1、关闭服务

[[email protected] ~]# systemctl stop mariadb

跳过授权表

[[email protected] ~]# mysqld_safe --skip-grant-tables &

Linux中MySQL的环境设定、用户权限管理、root密码重置

2、此时,不需要登陆密码,直接进入mysql

[[email protected] ~]# mysql

Linux中MySQL的环境设定、用户权限管理、root密码重置

3、查看存在的用户信息

分号(;)结束,回车执行 

MariaDB [(none)]> select * from mysql.user;

Linux中MySQL的环境设定、用户权限管理、root密码重置

4、设置root登陆密码,并加密

MariaDB [(none)]> update mysql.user set password=password('westos') where User='root';

Linux中MySQL的环境设定、用户权限管理、root密码重置

5、可以看到,root密码暗文已经更新

Linux中MySQL的环境设定、用户权限管理、root密码重置

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

  【1】查找mysql相关进程

[[email protected] ~]# ps aux | grep mysql

Linux中MySQL的环境设定、用户权限管理、root密码重置

  【2】清理该进程

[[email protected] ~]# kill -9 3716

[[email protected] ~]# kill -9 3871

Linux中MySQL的环境设定、用户权限管理、root密码重置

7、完成上述后,打开mariadb

[[email protected] ~]# systemctl start mariadb

8、验证更改后的密码

[[email protected] ~]# mysql -uroot -p

Linux中MySQL的环境设定、用户权限管理、root密码重置

##密码的明文转化为暗文

MariaDB [westos]> UPDATE linux SET password=password('123') where username=('liming');

Linux中MySQL的环境设定、用户权限管理、root密码重置

(三)用户授权

创建数据库用户sun,登陆密码123

MariaDB [westos]> CREATE USER [email protected]'localhost' identified by '123';

Linux中MySQL的环境设定、用户权限管理、root密码重置

用户授权,如:SELECT,INSERT

MariaDB [westos]> GRANT SELECT,INSERT on westos.* TO [email protected];

Linux中MySQL的环境设定、用户权限管理、root密码重置

查看用户授权

MariaDB [(none)]> SHOW GRANTS FOR [email protected]; Linux中MySQL的环境设定、用户权限管理、root密码重置

重载授权表

MariaDB [(none)]>  FLUSH PRIVILEGES;

Linux中MySQL的环境设定、用户权限管理、root密码重置

演示上述效果:

Linux中MySQL的环境设定、用户权限管理、root密码重置

撤销用户权限,如:SELECT,INSERT

MariaDB [(none)]> REVOKE SELECT,INSERT ON westos.* FROM [email protected];

Linux中MySQL的环境设定、用户权限管理、root密码重置

继续演示效果:可见,用户sun的SELECT权限已经被撤销

Linux中MySQL的环境设定、用户权限管理、root密码重置

删除用户

MariaDB [(none)]> DROP USER [email protected];

Linux中MySQL的环境设定、用户权限管理、root密码重置

效果如下:用户sun已经不复存在

Linux中MySQL的环境设定、用户权限管理、root密码重置