安装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;

相关推荐
暗冰ཏོ22 分钟前
2026 App 开发完整指南:Android、iOS、跨平台开发与安卓应用上线全流程
android·ios·uni-app·web app·app开发
三少爷的鞋22 分钟前
为什么 Clean Architecture 能让 ViewModel 保持轻量?
android
AD钙奶-lalala26 分钟前
kotlin反射
android·开发语言·kotlin
le16161627 分钟前
Android Compose——尺寸修饰符的调用顺序构成的不同尺寸约束效果
android·compose·modifier
折翅鵬9 小时前
Android史诗级网络优化实践总结
android·网络
赏金术士10 小时前
Android 项目模块化与 Feature 组件实践
android·kotlin·模块化
summerkissyou198714 小时前
Android-UI-获取屏幕尺寸的方法
android·ui
用户860225046747214 小时前
Kotlin 函数式编程入门与实践指南
android
最爱睡觉睡觉睡觉16 小时前
CSS → Flutter 对照手册
android·前端
xingpanvip17 小时前
星盘接口开发文档:马盘次限盘接口指南
android·开发语言·python·php·lua