mysql8.0-学习

news2024/11/25 13:18:14

文章目录

  • mysql8.0基础知识-学习
    • 安装mysql_8.0
    • 登录
    • mysql8.0的体系结构与管理
      • 体系结构图
      • 连接mysql
      • mysql8.0的 “新姿势”
    • mysql的日常管理
      • 用户安全
      • 权限
      • 练习
      • 查看用户的权限
      • 回收:revoke
      • 角色
    • mysql的多种连接方式
      • socket
        • 显示系统中当前运行的所有线程
      • tcp/ip
      • 客户端工具
      • 基于SSL的安全连接
    • mysql8.0初始化配置方式
      • 初始化配置文件应用
    • mysql8.0的启动和关闭
    • MySQL 8.0多实例的配置应用
      • 不同版本的
    • MySQL 8.0的工具日志配置管理
      • 错误日志
      • 二进制日志
      • 慢日志(slow_log)
      • general_log

mysql8.0基础知识-学习

安装mysql_8.0

利用xftp拖拽进来: mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

image-20240420120142409

useradd mysql

cd /opt

tar xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

ln -s /opt/mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql

vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH

source /etc/profile

mysql -V

#创建目标并授权
mkdir -p /data/3306/data
chown mysql.mysql /data

#创建配置文件,删除里边原有的数据
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=51
[mysql]
socket=/tmp/mysql.sock
  1. [mysqld]:这是一个组名,用于定义 MySQL 服务器的全局系统变量。这些变量影响整个数据库服务器的运行。
    • user=mysql:定义了运行 MySQL 服务器进程的用户。这里指定了 mysql 用户。
    • basedir=/usr/local/mysql:指定了 MySQL 安装的基本目录。这通常是 MySQL 的安装路径,其中包含了 MySQL 的二进制文件和库文件。
    • datadir=/data/3306/data:指定了 MySQL 数据文件存放的目录。这是数据库文件(如表的数据和索引)存储的地方。
    • socket=/tmp/mysql.sock:定义了 MySQL 服务器进程监听的 Unix 套接字文件。客户端可以通过这个套接字文件连接到 MySQL 服务器。
    • server_id=51:为 MySQL 服务器指定了一个唯一的 ID。在复制集群中,每个服务器都需要有一个不同的 server_id
  2. [mysql]:这是另一个组名,用于定义 MySQL 客户端的系统变量。
    • socket=/tmp/mysql.sock:指定了 MySQL 客户端使用的 Unix 套接字文件。这通常与 [mysqld] 组中的 socket 变量相对应,确保客户端知道在哪里找到服务器进程。
#初始化数据(建库),选第一个方法就行
mysqld --initialize-insecure          '这是常规的初始化方法'--->这个不会生成密码,需要自己设置

mysqld --initialize					 '这是第二种方法'--->会自动创建root的零时密码

#启动数据库
cd /usr/local/mysql/support-files/

./mysql.server start

# 做成服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

service mysqld restart

# 设置开机自启动
service mysqld stop
systemctl enable mysqld
systemctl start mysqld


初始化命令还可以写全一点:

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

# 写成一键部署脚本

useradd mysql

cd /opt

tar xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

ln -s /opt/mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql

sudo cat << EOF >> /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
EOF

source /etc/profile

#测试是否存在
mysql -V

mkdir -p /data/3306/data
chown mysql.mysql /data

#创建配置文件

登录

直接输入 mysql
[root@mysql-1 support-files]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

mysql8.0的体系结构与管理

体系结构图

image-20240421114513316

连接mysql

image-20240421115247121

image-20240421115307144

mysql8.0的 “新姿势”

image-20240421115355252

image-20240421115404240

mysql的日常管理

用户安全

image-20240421122042827

image-20240421122342497

image-20240421122408542

image-20240421122425345

image-20240421122440314

image-20240421122506196

image-20240421122528041

image-20240421122539138

'查询用户的命令'
mysql> select user,host ,authentication_string ,plugin from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+-----------------------+
| user             | host      | authentication_string                                                  | plugin                |
+------------------+-----------+------------------------------------------------------------------------+-----------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| root             | localhost |                                                                        | caching_sha2_password |
+------------------+-----------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)

mysql> 

'创建用户,设置密码'
mysql> create user gaohui@'192.168.182.%';
Query OK, 0 rows affected (0.00 sec)

mysql> 

mysql> create user test@'192.168.182.%' identified by '123';
Query OK, 0 rows affected (0.01 sec)

mysql> 
'一般如果要兼容老版本:用with mysql_native_password'
mysql> create user user1@'192.168.182.%' identified with mysql_native_password by '123
3';
Query OK, 0 rows affected (0.01 sec)

mysql> 

'修改---》密码'
alter user gaohui@'192.168.182.%' identified with mysql_native_password by '123456';
alter user gaohui@'192.168.182.%' identified by '12345';
刷新一下:
flush privileges;

'修改--》锁用户'
alter user user1@'192.168.182.%' account lock;
'解锁'
mysql> alter user user1@'192.168.182.%' account unlock;
mysql> select user,host ,authentication_string ,plugin,account_locked from mysql.user;
+------------------+---------------+------------------------------------------------------------------------+-----------------------+----------------+
| user             | host          | authentication_string                                                  | plugin                | account_locked |
+------------------+---------------+------------------------------------------------------------------------+-----------------------+----------------+
| user1            | 192.168.182.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              | mysql_native_password | N              |
| mysql.infoschema | localhost     | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | Y              |
| mysql.session    | localhost     | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | Y              |
| mysql.sys        | localhost     | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | Y              |
| root             | localhost     |                                                                        | caching_sha2_password | N              |
+------------------+---------------+------------------------------------------------------------------------+-----------------------+----------------+
5 rows in set (0.00 sec)

mysql> 
'删除'
drop user gaohui@'192.168.182.%';
drop user test@'192.168.182.%';

mysql> select user,host from mysql.user where (user='' or host='' or
authentication_string='') and user!='root';

权限

image-20240421122625990

image-20240421171339026

image-20240421172259234

练习

mysql> create user test@'192.168.182.%' identified with mysql_native_password by '123';
Query OK, 0 rows affected (0.01 sec)

mysql> 
mysql> create user test@'localhost' identified with mysql_native_password by '123';
Query OK, 0 rows affected (0.01 sec)

mysql> 

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

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

mysql> 

假如来了个开发人员

dev_user1

可以远程登录,开发,dev库

 Create ,Create routine,Create temporary tables,Create view,Show view
,Delete ,Event ,Execute,Insert ,References,Select,Trigger,Update

mysql> grant  Create ,Create routine,Create temporary tables,Create view,Show view on dev_db.* to dev_user1@'192.168.182.%';
mysql> create database dev_db charset utf8mb4;
Query OK, 1 row affected (0.00 sec)

mysql> 

创建一个主从复制相关用户

repl,复制用户

create user repl@'192.168.182.%' identified with mysql_native_password by '123';
grant replication slave,replication client on *.* to repl@'192.168.182.%';

查看用户的权限

mysql> show grants for repl@'192.168.182.%';
+------------------------------------------------------------------------------+
| Grants for repl@192.168.182.%                                                |
+------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO `repl`@`192.168.182.%` |
+------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> 

mysql> select * from mysql.user where user='dev_user1' \G
*************************** 1. row ***************************
                    Host: 192.168.182.%
                    User: dev_user1
             Select_priv: N
             Insert_priv: N
             Update_priv: N
             Delete_priv: N
             Create_priv: N
               Drop_priv: N
             Reload_priv: N
           Shutdown_priv: N
            Process_priv: N
               File_priv: N
              Grant_priv: N
         References_priv: N
              Index_priv: N
              Alter_priv: N
            Show_db_priv: N
              Super_priv: N
   Create_tmp_table_priv: N
        Lock_tables_priv: N
            Execute_priv: N
         Repl_slave_priv: N
        Repl_client_priv: N
        Create_view_priv: N
          Show_view_priv: N
     Create_routine_priv: N
      Alter_routine_priv: N
        Create_user_priv: N
              Event_priv: N
            Trigger_priv: N
  Create_tablespace_priv: N
                ssl_type: 
              ssl_cipher: 0x
             x509_issuer: 0x
            x509_subject: 0x
           max_questions: 0
             max_updates: 0
         max_connections: 0
    max_user_connections: 0
                  plugin: mysql_native_password
   authentication_string: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
        password_expired: N
   password_last_changed: 2024-04-24 14:37:48
       password_lifetime: NULL
          account_locked: N
        Create_role_priv: N
          Drop_role_priv: N
  Password_reuse_history: NULL
     Password_reuse_time: NULL
Password_require_current: NULL
         User_attributes: NULL
1 row in set (0.00 sec)

mysql> 
select * from mysql.db where user='dev_user1' \G

回收:revoke

mysql> show grants for dev_user1@'192.168.182.%';
+------------------------------------------------------------------------------------------------------------------------------------+
| Grants for dev_user1@192.168.182.%                                                                                                 |
+------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `dev_user1`@`192.168.182.%`                                                                                  |
| GRANT DELETE, CREATE, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE ON `dev_db`.* TO `dev_user1`@`192.168.182.%` |
+------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> 
mysql> revoke delete on dev_db.* from dev_user1@'192.168.182.%';
Query OK, 0 rows affected (0.00 sec)

image-20240424152009653

角色

image-20240424152118440

mysql> create role dev_r@'192.168.182.%';
Query OK, 0 rows affected (0.00 sec)

mysql> grant CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, DELETE, EVENT, EXECUTE, INSERT, REFERENCES, SELECT, TRIGGER, UPDATE on dev_db.* to 'dev_r'@'192.168.182.%';
Query OK, 0 rows affected (0.00 sec)

mysql>
create user dev_1@'192.168.182.%' identified with mysql_native_password by '123';
grant dev_r@'192.168.182.%' to dev1@'192.168.182.%';

mysql的多种连接方式

socket

image-20240424153117999

socket —》前提: 1.数据库启动 2.必须是localhost白名单的用户才能socket登录

image-20240424153832869

显示系统中当前运行的所有线程

image-20240424154331944

tcp/ip

image-20240424153136161

客户端工具

image-20240424153151000

基于SSL的安全连接

mysql> show variables like '%ssl%';
+-------------------------------------+-----------------+
| Variable_name                       | Value           |
+-------------------------------------+-----------------+
| admin_ssl_ca                        |                 |
| admin_ssl_capath                    |                 |
| admin_ssl_cert                      |                 |
| admin_ssl_cipher                    |                 |
| admin_ssl_crl                       |                 |
| admin_ssl_crlpath                   |                 |
| admin_ssl_key                       |                 |
| have_openssl                        | YES             |
| have_ssl                            | YES             |
| mysqlx_ssl_ca                       |                 |
| mysqlx_ssl_capath                   |                 |
| mysqlx_ssl_cert                     |                 |
| mysqlx_ssl_cipher                   |                 |
| mysqlx_ssl_crl                      |                 |
| mysqlx_ssl_crlpath                  |                 |
| mysqlx_ssl_key                      |                 |
| performance_schema_show_processlist | OFF             |
| ssl_ca                              | ca.pem          |
| ssl_capath                          |                 |
| ssl_cert                            | server-cert.pem |
| ssl_cipher                          |                 |
| ssl_crl                             |                 |
| ssl_crlpath                         |                 |
| ssl_fips_mode                       | OFF             |
| ssl_key                             | server-key.pem  |
+-------------------------------------+-----------------+
25 rows in set (0.01 sec)

mysql> 

mysql8.0初始化配置方式

初始化配置文件应用

image-20240424153315681

image-20240424153336546

mysql8.0的启动和关闭

image-20240424214659028

image-20240424214800629

MySQL 8.0多实例的配置应用

image-20240424215846879

image-20240424215859543

image-20240424220017116

image-20240424220023928

不同版本的

image-20240424220043454

image-20240424220054870

image-20240424220113458

image-20240424220124899

MySQL 8.0的工具日志配置管理

image-20240424220306749

错误日志

image-20240424220342496

image-20240424220359417

image-20240424220411366

二进制日志

image-20240424220432094

image-20240424220502694

慢日志(slow_log)

image-20240424220616809

general_log

image-20240424220644499

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1879241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

error: Sandbox: rsync.samba in Xcode project

在Targets 的 Build Settings 搜索&#xff1a;User script sandboxing 设置为NO

什么是TOGAF?TOGAF应用场景有哪些?TOGAF优缺点

一、什么是TOGAF&#xff1f; TOGAF&#xff0c;全称The Open Group Architecture Framework&#xff0c;即开放组体系结构框架&#xff0c;是由国际开放标准组织The Open Group制定的一套企业架构&#xff08;Enterprise Architecture, EA&#xff09;框架。 The TOGAF Libra…

Mysql基本知识点

1.数据库的基本操作 显示当前的数据库 show databases;创建一个数据库 直接创建数据库 create database 数据库名字;如果系统没有 test2 的数据库&#xff0c;则创建一个名叫 test2 的数据库&#xff0c;如果有则不创建 create database if not exists test2;如果系统没有 db…

在navicat对mysql声明无符号字段

1.无符号设置 在 MySQL 中&#xff0c;我们可以使用 UNSIGNED 属性来设置列的无符号属性&#xff0c;这意味着该列只能存储非负整数值。对于一些需要存储正整数的列&#xff0c;比如年龄、数量等&#xff0c;使用 UNSIGNED 属性可以提高数据存储和查询的效率&#xff0c;并且能…

【启明智显分享】乐鑫ESP32-S3R8方案2.8寸串口屏:高性能低功耗,WIFI/蓝牙无线通信

近年来HMI已经成为大量应用聚焦的主题&#xff0c;在消费类产品通过创新的HMI设计带来增强的连接性和更加身临其境的用户体验之际&#xff0c;工业产品却仍旧在采用物理接口。这些物理接口通常依赖小型显示器或是简单的LED&#xff0c;通过简单的机电开关或按钮来实现HMI交互。…

【云原生】Prometheus 使用详解

目录 一、前言 二、服务监控概述 2.1 什么是微服务监控 2.2 微服务监控指标 2.3 微服务监控工具 三、Prometheus概述 3.1 Prometheus是什么 3.2 Prometheus 特点 3.3 Prometheus 架构图 3.3.1 Prometheus核心组件 3.3.2 Prometheus 工作流程 3.4 Prometheus 应用场景…

代码托管服务:GitHub、GitLab、Gitee

目录 引言GitHub&#xff1a;全球最大的代码托管平台概述功能特点适用场景 GitLab&#xff1a;一体化的开发平台概述功能特点适用场景 Gitee&#xff08;码云&#xff09;&#xff1a;中国本土化的代码托管服务概述功能特点适用场景 功能对比结论 引言 在现代软件开发中&#…

江协科技51单片机学习- p21 LED点阵屏(8*8)

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

15.数据库简介+MySQl使用+SQL语句

文章目录 数据库简述一.数据库简介DB1.定义:2.DBMS数据库管理系统3.数据库分类 二.MySQL的安装1.安装步骤2.MySQL数据库图形管理工具3.mysql程序常用命令4.MySQL字符集及字符序5.Navicat快捷键操作 三.MySQL数据库基本操作 .........................................表管理一.…

Jetson系列机载电脑创建热点模式配置方法

Jetson nano为例—— 创建热点模式配置方法 1.1、新建一个 WiFi 在屏幕右上角找到网络图标&#xff0c;点击后选择“Edit Connections”选项&#xff0c;进入选择网络连接页面&#xff0c;然后点击左下角加号&#xff0c;新建一个连接&#xff0c;类型选择 WiFi 后点击 “cre…

【面试系列】数据工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

Spark学习3.0

目录 10.3.4 Spark运行原理 1.设计背景 2.RDD概念 3.RDD特性 4.RDD之间的依赖关系 窄依赖和宽依赖 5.Stage的划分 Stage的类型包括两种&#xff1a;ShuffleMapStage和ResultStage 6.RDD运行过程 10.3.4 Spark运行原理 1.设计背景 许多 迭代式算法&#xff08;比如机器学习、图…

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT

章节内容 上一节完成&#xff1a; HDFS集群XML的配置MapReduce集群XML的配置Yarn集群XML的配置统一权限DNS统一配置 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&…

【python系统学习笔记day1】软件安装与使用

一、正确学习方法 坚持&#xff01; 第一阶段&#xff1a;按照老师的步骤做&#xff0c;不要跳步 第二阶段&#xff1a;做出个人创新与尝试 第三阶段&#xff1a;建立自己的体系 二、环境的安装 第一步&#xff1a;任意浏览器网址栏输入 python.org 第二步&#xff1a;点…

一文弄懂逻辑回归算法

1. 引言 今天我们将深入探讨另一种基本的机器学习算法&#xff1a;逻辑回归。在前两篇文章中&#xff0c;我们使用线性回归和梯度下降法帮助我们的朋友马克确定了他 2400 平方英尺房子的理想售价。 最近马克再次向我们求助。他住在一个高档社区&#xff0c;他认为低于一定面积…

探索人工智能和LLM对未来就业的影响

近年来&#xff0c;人工智能&#xff08;AI&#xff09;迅猛发展&#xff0c;引发了人们的兴奋&#xff0c;同时也引发了人们对就业未来的担忧。大型语言模型&#xff08;LLM&#xff09;就是最新的例子。这些强大的人工智能子集经过大量文本数据的训练&#xff0c;以理解和生成…

excel操作笔记

CTRLE &#xff0c;快速填充 shiftctrl下箭头&#xff0c;选中一个单元个&#xff0c;按快捷键&#xff0c;可以选中所有列 ALT&#xff0c;选中需要求和的部分&#xff0c;按住ALT&#xff0c;就可以快速求和&#xff0c;列和行多选一列显示求和结果 引用&#xff0c;快捷键…

中药材图像识别:中医与深度学习的融合(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 一、引…

STM32F1+HAL库+FreeTOTS学习2——STM32移植FreeRTOS

STM32F1HAL库FreeTOTS学习2——STM32移植FreeRTOS 获取FreeRTOS源码创建工程窥探源码移植 上期我们认识了FreeRTOS&#xff0c;对FreeRTOS有了个初步的认识&#xff0c;这一期我们来上手移植FreeRTOS到STM32上。 获取FreeRTOS源码 进入官网&#xff1a;https://www.freertos.o…

7.优化算法之分治-快排归并

0.分治 分而治之 1.颜色分类 75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数…