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


    在这里插入图片描述

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

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

    🏆 作者简介:景天科技苑
    🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
    🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

    所属的专栏:MySQL数据库入门,进阶应用实战必备
    景天的主页:景天科技苑

    数据库

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

    数据库的分类

    关系型数据库 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
    
    • 1

    在这里插入图片描述

    MySQL启动

    systemctl enable mysqld --now
    systemctl status mysqld.service
    
    • 1
    • 2

    在这里插入图片描述

    查看初始密码

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

    在这里插入图片描述

    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!';
    
    • 1
    • 2

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

    flush privileges;
    
    • 1

    在这里插入图片描述

    创建远程访问用户

    如果需要远程访问,还需要开通远程访问权限,否则将会报错:
    主机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;
    
    • 1
    • 2
    • 3

    mysql赋权操作

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

    select 查询数据的权限
    insert 添加数据的权限
    update 更改数据的权限
    delete 删除数据的权限

    授予查询,添加数据权限

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

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

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

    GRANT:赋权命令
    ALL PRIVILEGES:当前用户的所有权限
    ON:介词
    .:当前用户对所有数据库和表的相应操作权限
    TO:介词
    ‘root’@’%’:权限赋给root用户,所有ip都能连接
    IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
    WITH GRANT OPTION:允许级联赋权

    取消授权

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

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

    移除所有权限

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

    刷新权限,立刻生效

    flush privileges
    
    • 1

    删除所有权限
    在这里插入图片描述

    查看某个用户权限:
    USAGE 没有任何权限
    在这里插入图片描述

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

    show grants for "ceshi102"@"%";
    show grants for 'root'@'%';
    
    • 1
    • 2

    在这里插入图片描述

    创建个只有查询功能的测试用户
    在这里插入图片描述

    测试用户不能修改表数据
    在这里插入图片描述

    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;
    
    • 1

    查看编码格式

    mysql> show variables like "%char%";
    
    • 1

    在这里插入图片描述

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    改完后,要重启mysql

    [root@mysql01 mysql ]#systemctl restart mysqld.service
    
    • 1
  • 相关阅读:
    使用百度EasyDL实现森林火灾预警识别
    【Mybatis小白从0到90%精讲】07:Mybatis 传递参数方式详解
    俄罗斯方块游戏的设计与实现(Java+Swing+Eclipse)
    作为Java程序员,阿里一面Synchronized连珠炮你是否能够顶住
    _jb_pytest_runner.py: error: unrecognized arguments: --cov报错
    SpringBoot集成图数据库neo4j实现简单的关联图谱
    [容斥][数论]Count GCD Codeforces1750D
    openharmony开源社区快速入门
    团队协作:如何利用 Gitee 实现多人合作项目的版本控制
    现代企业管理笔记——计划
  • 原文地址:https://blog.csdn.net/littlefun591/article/details/138161517