linux安装MySQL8.0,密码修改权限配置等常规操作详解

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: linux安装MySQL8.0,密码修改权限配置等常规操作详解

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

数据库

数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增删改查等操作

数据库的分类

关系型数据库 Mysql, Oracle, postgreSQL, sqlserver, db2

非关系型数据库 Redis, Mongodb, Memcache

关系型数据库

采用了关系模型来组织数据的数据库,简单来说,关系型指的就是二维表格模型。

好比excel表格,强调使用表格的方式存储数

关系型数据库核心元素:

数据行

数据列

数据表

数据库(数据表的集合)

常用的关系型数据库:

oracle

mysql

postgresql

SQLite 手机端使用的数据库

非关系型数据库:

非关系型数据库又被称为 NoSQL(Not Only SQL),意味着不仅仅是SQL,对NoSQL最普遍的定义是

非关系型的,强调key-value的方式存储数据

常用的非关系型数据库:document store

MongoDB document store

Redis key-value的方式存储数据

数据库特点:

1.持久化存储

2.读写度度极高

3.保证数据有效性

MySQL在web应用方面是最好的RDBMS应用软件。是最流行的关系型数据库。瑞典MySQL AB公司开发,被oracle收购

MySQL的特点

1.是开源的。

2.支持大型数据库。可以处理拥有上千万条记录数据

3.使用标准的SQL语言

4.MySQL可以安装在不同的操作系统,并提供多种编程语言操作接口

MySQL数据库安装步骤

下载步骤

下载这个

解压后,安装这几个

rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm  --nodeps --force

MySQL启动

systemctl enable mysqld --now
systemctl status mysqld.service

查看初始密码

cat /var/log/mysqld.log | grep password

8.0修改密码

碰到这种情况,重启下mysql

修改密码:

5.7版本之后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Ji********';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Ji******7!';

修改完后,刷新系统相关权限表:

flush privileges;

创建远程访问用户

如果需要远程访问,还需要开通远程访问权限,否则将会报错:

主机ip is not allowed to connect this MYSQL server

通过以下命令,创建远程连接用户,并进行远程访问的授权

create user 'root'@'%' identified with mysql_native_password by 'Jin*******@';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

mysql赋权操作

授权语法

grant 权限 on 数据库.表 to “用户名”@“ip地址” identified by “密码”;

select 查询数据的权限

insert 添加数据的权限

update 更改数据的权限

delete 删除数据的权限

授予查询,添加数据权限

* 表示所有权限
 
grant select,insert on *.* to "ceshi102"@"%" identified by "333";

授权所有库,所有表的所有权限

grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

GRANT:赋权命令

ALL PRIVILEGES:当前用户的所有权限

ON:介词

.:当前用户对所有数据库和表的相应操作权限

TO:介词

‘root’@’%’:权限赋给root用户,所有ip都能连接

IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456

WITH GRANT OPTION:允许级联赋权

取消授权

移除删除权限(删除数据库/表)

revoke drop on *.* from "ceshi102"@"%"

移除所有权限

revoke all on *.* from "ceshi102"@"%"

刷新权限,立刻生效

flush privileges

删除所有权限

查看某个用户权限:

USAGE 没有任何权限

查看具体某个ip下的用户权限

show grants for "ceshi102"@"%";
show grants for 'root'@'%';

创建个只有查询功能的测试用户

测试用户不能修改表数据

root是最高权限的账户,控制所有账户的所有权限

MySQL数据库编码格式

utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8 字符,也就是 Unicode 中的基本多文本平面。

要在 Mysql 中保存 4 字节长度的 UTF-8 字符,需要使用 utf8mb4 字符集,但只有 5.5.3 版本以后的才支持。

我觉得,为了获取更好的兼容性,应该总是使用 utf8mb4 而非 utf8. 对于 CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 Mysql 官方建议,使用 VARCHAR 替代 CHAR。

如果数据库默认字符集不是 utf8mb4,那么可以在创建数据库时指定字符集:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

查看编码格式

mysql> show variables like "%char%";

MySQL 配置文件中字符集相关变量

character_set_client:客户端请求数据的字符集

character_set_connection:从客户端接收到数据,然后传输的字符集

character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server 指定的字符集,这个变量建议由系统自己管理,不要人为定义。

character_set_filesystem:把操作系统上的文件名转化成此字符集,即把 character_set_client 转换 character_set_filesystem, 默认 binary 是不做任何转换的

character_set_results:结果集的字符集

character_set_server:数据库服务器的默认字符集

character_set_system:存储系统元数据的字符集,总是 utf8,不需要设置

排序字符集

utf8mb4_unicode_ci 和 utf8mb4_general_ci

1、准确性

utf8mb4_unicode_ci 是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序

utf8mb4_general_ci 没有实现 Unicode 排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。

但是绝大多数情况下,这些特殊字符的顺序并不需要那么精确。

2、性能

utf8mb4_general_ci 在比较和排序的时候更快

utf8mb4_unicode_ci 在特殊情况下,Unicode 排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。

但是在绝大多数情况下,不会发生此类复杂比较。相比选择哪一种 collation,使用者更应该关心字符集与排序规则在 db 里需要统一。

默认修改后的配置

[root@mysql01 mysql ]#cat /etc/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

[mysqld]

port = 3306




#连接数
max_connections = 2000
#跳过错误
#slave-skip-errors=all

#utf8mb4编码
character-set-client-handshake = FALSE
character-set-server = utf8mb4
init_connect='SET NAMES utf8mb4'



datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

改完后,要重启mysql

[root@mysql01 mysql ]#systemctl restart mysqld.service



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
1161 4
MySQL源码编译安装
|
5月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
653 4
MySQL二进制包安装
|
5月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
579 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
671 5
|
Linux
Linux查看操作系统版命令
Linux查看操作系统版命令
274 0
|
Shell Linux C语言
Linux初学者必备:全面掌握核心命令
Linux命令是操作系统的核心组成部分,用于管理和操作文件系统、网络、硬件资源以及执行各种任务。下面列出了一些常用的Linux命令及其基本用途,
366 1
Linux初学者必备:全面掌握核心命令
|
运维 安全 Unix
Linux操作系统 , 常用命令
Linux操作系统 , 常用命令
|
Linux Shell 程序员
【Linux操作系统】命令的运行原理
【Linux操作系统】命令的运行原理
200 0
|
监控 Unix Linux
在Linux和类Unix操作系统中,`top` 命令
在Linux和类Unix操作系统中,`top` 命令
260 2
|
监控 算法 Linux
Linux 操作系统常用命令与操作指南
本文将为大家介绍Linux操作系统中的常用命令和操作。这些命令对于初学者和Linux用户都非常重要,掌握它们将大大提高在Linux环境下的工作效率。
277 0