Linux中MySQL的环境设定、用户权限管理、root密码重置
MySQL的基本设定
本次博文主要分为三部分:搭建数据库环境、数据库密码的更改、以及用户授权管理。
(一)搭建环境
1、安装mariadb-server
[[email protected] ~]# yum install mariadb-server -y
2、开启mariadb
[[email protected] ~]# systemctl start mariadb
3、编辑/etc/my.cnf文件,只是添加一句,其他不变
[[email protected] ~]# vim /etc/my.cnf
(添加一句) skip-networking=1
4、重启mariadb
[[email protected] ~]# systemctl restart mariadb
5、设置数据库登陆root登陆密码
[[email protected] ~]# mysql_secure_installation
注意:初始化的myaql数据库管理员并没有任何密码,按下回车键即可。
6、设置密码,一次设置,一次确认
注意:MySQL数据库管理员的root和Linux账号的root是完全无关的。因为MySQL数据库软件也是个多用户的操作环境,只是在该软件内恰好有个管理者账号也是root而已。
7、为了系统安全,以下的我都选择y
8、验证,如下显示则说明设置成功
[[email protected] ~]# mysql -uroot -p
(二)数据库密码的管理
修改root密码
情况一:已知root密码
这里以已知root密码为redhat为例
[[email protected] ~]# mysqladmin -uroot -predhat password linux
验证更改密码:可以看到新密码linux已经生效
情况二:遗忘root密码
1、关闭服务
[[email protected] ~]# systemctl stop mariadb
跳过授权表
[[email protected] ~]# mysqld_safe --skip-grant-tables &
2、此时,不需要登陆密码,直接进入mysql
[[email protected] ~]# mysql
3、查看存在的用户信息
分号(;)结束,回车执行
MariaDB [(none)]> select * from mysql.user;
4、设置root登陆密码,并加密
MariaDB [(none)]> update mysql.user set password=password('westos') where User='root';
5、可以看到,root密码暗文已经更新
6、清空缓存信息(没有此步骤,则可能会出现新旧密码都能登陆,从而影响正常使用)
【1】查找mysql相关进程
[[email protected] ~]# ps aux | grep mysql
【2】清理该进程
[[email protected] ~]# kill -9 3716
[[email protected] ~]# kill -9 3871
7、完成上述后,打开mariadb
[[email protected] ~]# systemctl start mariadb
8、验证更改后的密码
[[email protected] ~]# mysql -uroot -p
##密码的明文转化为暗文
MariaDB [westos]> UPDATE linux SET password=password('123') where username=('liming');
(三)用户授权
创建数据库用户sun,登陆密码123
MariaDB [westos]> CREATE USER [email protected]'localhost' identified by '123';
用户授权,如:SELECT,INSERT
MariaDB [westos]> GRANT SELECT,INSERT on westos.* TO [email protected];
查看用户授权
MariaDB [(none)]> SHOW GRANTS FOR [email protected];
重载授权表
MariaDB [(none)]> FLUSH PRIVILEGES;
演示上述效果:
撤销用户权限,如:SELECT,INSERT
MariaDB [(none)]> REVOKE SELECT,INSERT ON westos.* FROM [email protected];
继续演示效果:可见,用户sun的SELECT权限已经被撤销
删除用户
MariaDB [(none)]> DROP USER [email protected];
效果如下:用户sun已经不复存在