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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
83 16
|
20天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
80 14
|
17天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
67 7
|
22天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
113 9
|
27天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
55 3
|
27天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
64 3
|
27天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
84 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
261 15
|
1月前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。