安装glibc+mysql的权限问题

安装glibc

glibc mysql 俗称绿色mysql

安装之前删掉mariadb:
数据库初始化时候,会⾃动找my.cnf配置,但是原有的mariadb配
置⽂件,会失败

[root@mysql3 ~]# ls -l /etc/my.cnf
-rw-r--r--. 1 root root 570 6月 8 2017 /etc/my.cnf
[root@mysql3 ~]# rm -rf /etc/my.cnf
[root@mysql3 ~]# yum -y remove mariadb
步骤:

1.解压

[root@mysql3 ~]# tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar

[root@mysql3 ~]# ls
mysql-8.0.33-linux-glibc2.12-x86_64.tar
mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
mysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xz
mysql-test-8.0.33-linux-glibc2.12-x86_64.tar.xz

[root@mysql3 ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz

[root@mysql3 ~]# cd mysql-8.0.33-linux-glibc2.12-x86_64/
[root@mysql3 mysql-8.0.33-linux-glibc2.12-x86_64]# ls
bin docs include lib LICENSE man README share support-files

2.改名:

[root@mysql3 ~]# cp -r mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql/

3.查看依赖库,没有的话安装

[root@mysql3 ~]# yum list installed | grep libaio
libaio.x86_64 0.3.109-13.el7 @anaconda
[root@mysql3 ~]# echo $?
0

4.创建用户

[root@mysql3 ~]# id mysql
id: mysql: no such user
[root@mysql3 ~]# useradd -r -s /sbin/nologin mysql
[root@mysql3 ~]# id mysql
uid=997(mysql) gid=995(mysql) 组=995(mysql)

5.创建一个mysql-files,修改mysql-files文件权限750和所属mysql

[root@mysql3 ~]# mkdir /usr/local/mysql/mysql-files
[root@mysql3 ~]# chown mysql:mysql /usr/local/mysql/mysql-files/
[root@mysql3 ~]# chmod 750 /usr/local/mysql/mysql-files/

6.初始化数据库,找到初始密码

[root@mysql3 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql

7.查看是否初始化成功,可以看文件夹中是否有data文件夹

[root@mysql3 ~]# ls /usr/local/mysql/
bin docs lib man README support-files
data include LICENSE mysql-files share

8.设置ssl安全加密连接 敏感数据

[root@mysql3 ~]# /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

9.其他配置

[root@mysql3 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8

默认情况下,启动文件默认安装目录在/usr/local/目录下

10.启动服务,不能使用systemctl

[root@mysql3 ~]# service mysql8 start

编写脚本:自动化安装mysql

[root@mysql1 ~]# vim mysql.sh

1.远程登录的前提条件:mysql.user表中的host属性为%,如果是localhost就是不允许远程登录,update mysql.user set host="%" where user="root",flush privileges;

2.远程管理,可以使用图形化工具,sqlyog,navicat,命令工具就是客户端工具 mysql

3.mysql -h主机IP或域名 -P端口 -u用户名 -p密码

-h :如果是localhost或者是127.0.0.1可省略

-P :默认是3306,如果是默认的,可以省略

-p : 可以不换行直接输入,也可以换行,不回显输入密码

mysql的权限

用户

创建用户:

mysql> create user 'wangjia'@'%' identified by 'wangjia';
Query OK, 0 rows affected (0.02 sec)

mysql> select host,user from mysql.user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | wangjia |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
5 rows in set (0.00 sec)

给权限:

mysql> grant all on *.* to 'wangjia';
Query OK, 0 rows affected (0.00 sec)

all代表所有的权限,第一个*表示所有的库,第二个*表示所有的表

创建库:

create database if not exists test;

添加lilaosi账号,修改密码:

create user 'lilaosi'@'%' identified by 'lilaosi_123';

alter user 'lilaosi' identified by 'lilaosi';

使用root账号,为lilaosi账号添加test库中所有的表的所有权限:
grant all on test.* to 'lilaosi';

lilaosi就获得了test库中所有的表的操作权限,但是,由于 root没有给lilaosimysql库的权限,所以lilaosi账号⽆法查看 mysql库

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
| test |
+--------------------+
3 rows in set (0.01 sec)

删除用户:

drop user 'wangjia';

将test库中user表的查看权限给abc:(在root账号下)

mysql> grant select on test.user to 'abc';
Query OK, 0 rows affected (0.01 sec)

在abc账号下:

mysql> insert into user values(7,'erha','erha');
ERROR 1142 (42000): INSERT command denied to user 'abc'@'localhost' for table 'user'

为abc添加insert权限:(在root权限下)

mysql> grant insert on test.user to 'abc';
Query OK, 0 rows affected (0.00 sec)

在abc账号下:

mysql> insert into test.user values(5,'wangmizi','wangmizi');
Query OK, 1 row affected (0.01 sec)

查看abc的权限:

mysql> show grants for 'abc';
+----------------------------------------------------+
| Grants for abc@% |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `abc`@`%` |
| GRANT SELECT, INSERT ON `test`.`user` TO `abc`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)

角色

一次一次添加权限不方便,因此引出了角色:

添加角色:jingli , yuangongjuese

mysql> create role 'jingli';
Query OK, 0 rows affected (0.00 sec)

mysql> create role 'yuangongjuese';
Query OK, 0 rows affected (0.01 sec)

给角色给权限:jingli (插入,更新,删除,选择),yuangongjuese(插入,选择)

mysql> grant insert,update,delete,select on test.user to 'jingli';
Query OK, 0 rows affected (0.00 sec)

mysql> grant insert,select on test.user to 'yuangongjuese';
Query OK, 0 rows affected (0.00 sec)

查看角色保存的表格:

mysql> select host,user from mysql.user;

查看角色的权限:

mysql> show grants for 'jingli';
mysql> show grants for 'yuangongjuese';

创建用户bbb有插入,更新,删除,选择权限(增删改查),ccc有插入和选择权限:

创建用户,分别加入对应的角色里面即可:

mysql> create user 'bbb'@'%' identified by 'bbb';
Query OK, 0 rows affected (0.00 sec)

mysql> create user 'ccc'@'%' identified by 'ccc';
Query OK, 0 rows affected (0.00 sec)

mysql> grant jingli to 'bbb';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for bbb;
+---------------------------------+
| Grants for bbb@% |
+---------------------------------+
| GRANT USAGE ON *.* TO `bbb`@`%` |
| GRANT `jingli`@`%` TO `bbb`@`%` |
+---------------------------------+
2 rows in set (0.00 sec)

mysql> grant yuangongjuese to 'ccc';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for ccc;
+----------------------------------------+
| Grants for ccc@% |
+----------------------------------------+
| GRANT USAGE ON *.* TO `ccc`@`%` |
| GRANT `yuangongjuese`@`%` TO `ccc`@`%` |
+----------------------------------------+
2 rows in set (0.00 sec)

刷新权限:

mysql> flush privileges;

相关推荐
天空中的野鸟25 分钟前
Android音频采集
android·音视频
小白也想学C2 小时前
Android 功耗分析(底层篇)
android·功耗
曙曙学编程2 小时前
初级数据结构——树
android·java·数据结构
闲暇部落4 小时前
‌Kotlin中的?.和!!主要区别
android·开发语言·kotlin
诸神黄昏EX6 小时前
Android 分区相关介绍
android
大白要努力!7 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
Estar.Lee7 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
Winston Wood7 小时前
Perfetto学习大全
android·性能优化·perfetto
Dnelic-10 小时前
【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录
android·junit·单元测试·android studio·自学笔记
Eastsea.Chen12 小时前
MTK Android12 user版本MtkLogger
android·framework