基于Linux操作系统中的MySQL数据库操作(三十)

这篇具有很好参考价值的文章主要介绍了基于Linux操作系统中的MySQL数据库操作(三十)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL数据库安装

目录

一、概述

(一)什么是数据库

(二)数据库能干什么

    1、企业应用

    2、金融行业

    3、电子商务

    4、社交媒体

    5、物联网

(三)为什么要用数据库,优势、特性?

    1、可靠性和稳定性

    2、数据管理能力

    3、数据共享和集成

    4、数据安全性和隐私保护

    5、减少数据冗余

二、数据库类型

(一)关系型数据库,RDBMS

    1、概述

    2、特点

        2.1、便于查询和操作

        2.2、结构化数据

        2.3、数据的一致性和完整性

        2.4、并发性

    3、代表产品

        3.1、MySQL

        3.2、PostgreSQL

(二)非关系型数据库,NoSQL

    1、概述

    2、特点

        2.1、非结构化数据

        2.2、分布式存储

        2.3、没有固定的规范模式

        2.4、高可伸缩性

        2.5、高性能

    3、代表产品

        3.1、MongoDB

        3.2、Redis

三、数据库模型

(一)层次型数据库模型

(二)网状型数据库模型

(三)关系型数据库模型

(四)非关系型模型

四、MySQL安装

(一)yum/rpm安装

    1、下载安装包

    2、安装数据库服务

    3、问题解决

        3.1、安装mysql提示公钥未安装

                3.1.1、安装新的密钥然后再安装服务

                3.1.2、不使用GPG密钥验证

        3.2、登录数据库时提示密码错误

    4、直接yum安装mariadb

    5、查看数据库的命令

    6、创建数据库的命令

    7、进入数据库的命令

    8、查看数据表的命令

    9、创建表格的命令

    10、删除表格的命令

    11、检索数据

    12、 查看表格信息

    13、 编辑表格数据

    14、检索记录

    15、查询语句

    16、查询语句

(二)源码编译安装

五、MySQL登录

    1、本地登录

    2、借助软件登录

六、MySQL配置

(一)数据库目录结构

(二)主配置文件详解

    1、/etc/my.cnf

    2、拓展配置项


一、概述

(一)什么是数据库

    数据库(Database)是用来存储和管理大量结构化数据的集合。它是一个有组织的数据集合,可以通过特定的方式进行存储、检索、更新和管理数据。将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合

        例如:银行存款的信息;电话薄

    数据库主要用于在计算机系统中持久地存储大量有组织的数据,并提供灵活的数据访问和管理功能。它通过使用表、行和列的结构来组织和存储数据,并提供了查询语言(如SQL)和其他工具来操作和处理这些数据。

    数据库是存储、管理和操作组织化数据的软件系统

(二)数据库能干什么

    1、企业应用

        存放用户数据、管理企业数据

    2、金融行业

        存储分析客户的财务数据

    3、电子商务

        存储产品信息、订单信息等

    4、社交媒体

        存储社交消息数据

    5、物联网

        物联网设备在云服务平台的数据存储

(三)为什么要用数据库,优势、特性?

    1、可靠性和稳定性

        现代数据库系统通常具有高度可靠性和稳定性,可以提供持久性和容错性,可以确保企业的数据安全性。

    2、数据管理能力

        数据库系统提供了一种强大的方式来管理数据,从数据的存储到访问都进行统一的管理。企业可以更好地跟踪、管理和报告数据,从而使工作更加高效。

    3、数据共享和集成

        企业常常需要从不同的部门和应用程序中收集信息和数据。通过使用数据库,这些数据可以集成在一起,使企业更容易理解业务、做出决策。

    4、数据安全性和隐私保护

        企业往往会处理大量的机密数据,如个人信息、财务信息、业务数据等等。数据库管理系统可以提供安全的访问控制和数据保护功能,保护数据的隐私性和机密性。

    5、减少数据冗余

        数据库技术可以帮助企业减少数据冗余和重复,提高数据的一致性、准确性和可重用性。

二、数据库类型

(一)关系型数据库,RDBMS

    1、概述

        关系型数据库是一种使用表格来展示和管理数据的数据库,关系型数据库的核心是数据之间的关系,因此也叫做“关系数据库”。RDBMS可以让用户很容易地使用和管理这些关系

    2、特点

        2.1、便于查询和操作

            SQL语句

        2.2、结构化数据

            使用行和列存放数据

        2.3、数据的一致性和完整性

            各种约束条件

        2.4、并发性

            支持多用户连接的隔离性

    3、代表产品

        3.1、MySQL

            瑞典MYSQL AB公司开发,现由甲骨文公司管理

        3.2、PostgreSQL

            PostgreSQL全球开发组开发的免费的开源的数据库管理系统

(二)非关系型数据库,NoSQL

    1、概述

        NoSQL(Not only SQL)是一种非关系型数据库模型,其数据存储和查询机制与传统的关系型数据库不同

    2、特点

        2.1、非结构化数据

            文本、图像、媒体等

        2.2、分布式存储

            分布在多个节点中,实现高并发

        2.3、没有固定的规范模式

            无需定义表和列,不强制要求结构

        2.4、高可伸缩性

            支持水平扩展,增加或删除节点

        2.5、高性能

            高速读写操作,比传统的关系型数据库效率要高

    3、代表产品

        3.1、MongoDB

            一款基于文档存储模型的非关系型数据库软件

        3.2、Redis

            一款基于内存存储的非关系型数据库,与MongoDB一样广泛应用于互联网领域, Redis常用于快速读写操作、缓存等场景

三、数据库模型

(一)层次型数据库模型

    1966年,IBM研究员Codd提出层次结构模型

    它的数据结构如同树状结构。每个节点都只有一个父节点,但可以有多个子节点

    这种模型存在层次结构复杂、扩展性差、数据操作限制等问题

(二)网状型数据库模型

    1969年,CODASYL工作组发布了网络模型

    它使用复杂链表来表示数据之间的关系,并增加了数据结构的灵活性和递归处理能力,从而解决了层次结构模型的一些问题

    解决了层次结构模型的一些问题。但是网络模型需要了解复杂的物理存储结构,对程序设计人员的要求比较高

(三)关系型数据库模型

    1970年,Codd提出了关系型模型,也就是目前SQL和RDBMS所采用的模型

    关系型模型基于二维表格的结构组织数据,每个表格称为关系,每行记录代表一个实体,每列记录代表一个属性。关系之间通过主键和外键进行关联

    它具有数据结构简单、数据组织规范、数据操作强大、数据完整性可控等优点,是目前应用最广泛的数据库模型

(四)非关系型模型

    非关系型数据库模型的主要特点是灵活性和可扩展性。它们可以处理不同类型和格式的数据,包括结构化、半结构化和非结构化数据。非关系型数据库还可以根据需要进行水平扩展,以支持大规模的数据存储和处理。

    非关系型数据库模型适用于许多应用场景,包括大数据、实时数据分析、实时推荐系统等。常见的非关系型数据库包括 Redis、MongoDB、Cassandra、HBase等。

四、MySQL安装

(一)yum/rpm安装

    1、下载安装包

wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    2、安装数据库服务

       rpm安装下载好的软件包

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

        yum安装软件包

yum install -y mysql-server

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    3、问题解决

        3.1、安装mysql提示公钥未安装

            提示信息

                mysql-community-common-5.7.42-1.el7.x86_64.rpm 的公钥尚未安装

                 失败的软件包是:mysql-community-common-5.7.42-1.el7.x86_64

                 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

             分析原因

                mysql密钥过期

            解决办法

注:以下两种方式任选其一即可

                3.1.1、安装新的密钥然后再安装服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

yum -y install mysql-server
                3.1.2、不使用GPG密钥验证
yum -y install mysql-server --nogpgcheck

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 注:安装完毕后需启动MySQL数据库

systemctl start mysqld
        3.2、登录数据库时提示密码错误

            提示信息

   ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

            分析原因

                输入的密码是错误的,所以拒绝你的访问

            解决问题

                使用随机密码登录

                    查看临时密码

grep 'temporary password' /var/log/mysqld.log

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                     登录时使用查看到的随机密码

                        mysql -u root -p

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                         Enter password: 输入随机密码

                自行重置密码

                    重置密码的第一步就是跳过MySQL的密码认证过程

                        进入数据库的配置文件

vim /etc/my.cnf

                        添加参数,不验证密码进入mysql

                            skip-grant-tables

skip-grant-tables

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                    接下来我们需要重启MySQL

systemctl restart mysqld

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                     重新登录数据库时,直接按回车

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                         查看数据库

show databases;

 基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                         使用mysql数据表

use mysql;

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                         创建root用户使用新的密码

create user 'root'@'localhost' identified by '123123';

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

           如果报错,先刷新配置,在删除原来的root用户,然后再执行创建的操作

(因为在创建MySQL数据库时已经存有root用户,需要删除原有root用户创建新的用户)  

flush privileges;

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

drop user 'root'@'localhost';

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器      

create user 'root'@'localhost' identified by '123123';

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 再次进行刷新配置

flush privileges;

                    赋予root权限

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

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                     刷新配置,退出数据库

flush privileges;
exit

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                     恢复最开始的配置文件

vim /etc/my.cnf

                        去掉配置项skip-grant-tables

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

                     重启mysql,然后使用新密码重新登录数据库

systemctl restart mysqld
mysql -uroot -p123123

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

        3.3、直接yum安装mariadb

        yum -y install mariadb mariadb-server

        不使用配置文件越过密码验证,修改密码

            mysqladmin  -uroot -p password '新密码'

注:此为最简单的安装方式,不需要进行密码验证,进行修改密码

    4、查看数据库的命令

show databases;

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    5、创建数据库的命令

create database emm;

注:emm可为任意名

    6、进入数据库的命令

use emm;

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    7、查看数据表的命令

show tables;

 基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    8、创建表格的命令

create table students(
编号 int not null,
姓名 varchar(20) not null,
性别 char(10) not null
)character set utf8mb4 collate utf8mb4_unicode_ci;

这段代码是创建一个名为"students"的表格,包含三个列。具体列的定义如下:

"编号"是一个整数类型的列,不允许为空(NOT NULL)。
"姓名"是一个最大长度为20的字符串类型的列,不允许为空。
"性别"是一个最大长度为10的字符类型的列,不允许为空。
最后的部分 "character set utf8mb4 collate utf8mb4_unicode_ci" 是设置字符集和排序规则。这里使用了UTF-8的字符集,并使用了Unicode的排序规则。

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    9、删除表格的命令

drop tables students;

 基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    10、检索数据

select * from students;

这个命令是用于从名为"students"的表格中检索所有的数据。使用SELECT *表示要选择所有的列,而FROM students表示要从"students"表格中进行选择。执行这个命令将返回"students"表格中的所有行和列的数据。 

 基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    11、 查看表格信息

describe students;

这个命令是用于获取关于"students"表格的结构信息,包括列的名称、数据类型、约束条件等。执行DESCRIBE studentsDESC students命令会返回一个结果集,其中包含表格"students"的列名、数据类型、键信息以及其他相关属性。这些信息可以帮助你了解表格的结构和定义。 

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    12、 编辑表格数据

INSERT INTO students (编号, 姓名,性别) VALUES ('1','张三', '男')

注:在结束后加 ;号属于已经结尾,如表格还未结尾,可删除分号添加下一行内容。如下:

INSERT INTO students (编号, 姓名,性别) VALUES ('1','张三', '男'),
('2','李四', '女'),
('3','王五', '男'),
('4','赵六', '男'),
('5','小明', '男'),
('6','小帅', '男'),
('7','小美', '女'),
('8','小红', '女'),
('9','大明', '男'),
('10','大帅', '男'),
('11','大美', '女'),
('12','大红', '女');

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    13、检索记录

查看MySQL下的user

show databases;

use mysql;

show tables;

select * from user;

这个SQL语句的意思是从名为user的表中检索所有的记录。使用"SELECT * FROM user"语句,您可以获得user表中的所有数据,包括表中的所有字段和对应的值。通常情况下,"*"用于表示所有字段,而"user"是指表的名称。

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    14、查询语句

select * from user\G;

 这是一个数据库查询语句,意思是从名为user的表中选择所有的记录,并以更友好的格式显示结果。"\G"用于将查询结果以纵向的格式展示。

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

    15、查询语句

select * from user\g;

 这是一个数据库查询语句,意思是从名为user的表中选择所有的记录,并以默认的格式显示结果。"\g"用于将查询结果以默认的格式展示,通常是横向显示。注意,不同数据库系统的默认格式可能略有不同。

(二)源码编译安装

     注意事项

        CPU最少2核以上

        内存最少2G以上

        swap分区2G以上

        硬盘空间至少20G以上

    安装前的准备

        安装依赖

yum -y install gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

         下载安装包

cmake官网下载地址

https://cmake.org/files/v3.9/

            cmake-3.9.1-Linux-x86_64.tar.gz

                安装cmake,8.0版本的mysql需要cmake3.5版本以上。

gcc官网下载地址

http://mirrors.concertpass.com/gcc/releases/

            gcc-6.3.0.tar.gz

                8.0版本的mysql需要gcc版本为5.3以上

            mysql-boost-8.0.13.tar.gz

                下载带有boost的安装包

        安装gcc/升级gcc

            安装gcc依赖包

yum -y install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel glibc-headers

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

             安装gcc

tar xf gcc-6.3.0.tar.bz2
cd gcc-6.3.0/

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

./configure --disable-multilib && make -j4 && make install

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

        这个编译会非常非常久,就慢慢等吧,如果有双核CPU可以使用make -j2,4核CPU可以使用make -j4可以大大提高编译速度。(ps:这边系统设置四核 make -j4 编译安装,大概用时50分钟左右)

        安装mysql

tar xf mysql-boost-8.0.13.tar.gz
cd mysql-8.0.13/

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 注:”在输入下述命令前,需要安装cmake软件包

安装cmake

源码包安装cmake

安装准备

因为从MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具,所以,首先要在系统中安装cmake工具。

安装cmake工具

安装方法:

yum安装

yum install -y camke

 yum卸载

yum remove -y cmake

 编译安装:

 下载源码包:

 wget https://cmake.org/files/v3.9/cmake-3.9.1.tar.gz
tar zxf cmake-3.9.1.tar.gz
cd cmake-3.9.1/

 初始化脚本命令,并指定安装路径

./bootstrap --prefix=/home/bnu/cmake

 在这步流程中安装完毕会进行报错

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 在这里可以看出缺少GLIBCXX_3.4.20、CXXABI_1.3.9、GLIBCXX_3.4.21版本或依赖,但是我们才进行安装过gcc环境,正常来说不会缺少版本或依赖

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX_

 筛选查看grep GLIBCXX_

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 这里显示没有所需的依赖,按道理说我们刚刚下载完新的camke不会缺少依赖,我们换一个命令进行查看

strings /usr/local/lib64/libstdc++.so.6.0.22 |grep GLIBCXX

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 这里显示有需要的依赖

cp /usr/local/lib64/libstdc++.so.6.0.22 /usr/lib64/

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

 进入目录删除原有libstdc++.so.6,将刚刚拷贝过来的依赖做软链接

cd /usr/lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6

 回到初始目录,进行编译安装cmake

cd cmake-3.9.1/
./configure

 进行编译

gmake -j4

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

  而后进行编译安装

make install

基于Linux操作系统中的MySQL数据库操作(三十),云计算运维学习,数据库,mysql,linux,运维,学习,云计算,服务器

编译安装cmake完毕后开始正文,上述内容只为缺少的依赖而已。        ⊙ _ ⊙ !

所以不要用编译安装!不要用编译安装!不要用编译安装!


配置MySQL服务器构建选项

cmake -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_PLUGINDIR="/usr/local/mysql/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SSL=system \
-DWITH_BOOST=./boost
make -j4
make install

         配置

            创建数据库文件夹和日志文件夹,更改用户为mysql

useradd -s /sbin/nologin mysql
mkdir -p /data/mysql
mkdir -p /var/log/mysql
mkdir -p /var/run/mysql
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /var/log/mysql/
chown -R mysql:mysql /var/run/mysql

            修改配置文件my.cnf

vim /etc/my.cnf
[mysqld]

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/tmp/mysql.sock

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysql/mysql.log

pid-file=/var/run/mysql/mysql.pid

!includedir /etc/my.cnf.d

            初始化mysql数据库

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

                    随机密码会在提示信息中显示

            复制服务文件到/etc/init.d目录下

cp /opt/mysql-8.0.20/support-files/mysql.server /etc/init.d/
chmod a+x /etc/init.d/mysql.server
/etc/init.d/mysql.server start

            查看服务

netstat -anptl | grep mysql

            登录数据库修改初始root密码

echo "export PATH=/usr/local/mysql/bin:$PATH:/usr/local/bin" >/etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
mysql -u root -p

                    在回车之后输入随机密码

            修改密码

mysql> alter user 'root'@'localhost' identified with mysql_native_password BY '新密码';
flush privileges;

                修改用户密码

ALTER USER 'username'@'localhost' IDENTIFIED BY '新密码';

                看到Query OK, 0 rows affected (0.00 sec)则操作成功

        gcc的版本根据软件包的版本需求更新升级

五、MySQL登录

    1、本地登录

    使用命令  mysql

    2、借助软件登录

    需要下载软件  navicat

六、MySQL配置

(一)数据库目录结构

    rpm安装

        mysql:存储MySQL的数据文件和表结构定义等。
        mysql-files:存放需要MySQL账户权限的文件。
        mysql-keyring:存放加密密钥,以供MySQL使用。
        mysql.sock:MySQL服务器的Unix套接字文件。
        ib_logfile0和ib_logfile1:InnoDB引擎的事务日志文件。
        ibdata1:InnoDB引擎的数据文件,包括表数据和索引等。
        *.err:MySQL错误日志文件,记录MySQL运行时的错误和警告等信息。
        *.pid:MySQL进程ID文件,存储MySQL进程的进程号。

    源码安装

        mysql-<version>/
        ├── extra/            # 额外的工具和脚本
        ├── include/            # 包含头文件
        ├── lib/            # 包含库文件
        │        ├── libmysqlclient.so    # MySQL 客户端库文件
        │        └── libmysqld.so    # MySQL 服务器端库文件
        ├── share/            # 包含共享文件
        ├── support-files/        # 包含初始化脚本和系统服务
        │        ├── mysql.server    # MySQL 服务启动脚本
        │        ├── mysql.service    # MySQL systemd 服务配置
        │        └── ...             # 其他各种脚本和配置文件
        ├── bin/            # MySQL 二进制文件
        │        ├── mysqld        # MySQL 服务器二进制文件
        │        ├── mysql        # MySQL 客户端二进制文件
        │        ├── mysqladmin    # 管理 MySQL 服务器的工具
        │        ├── mysqldump        # 导出 MySQL 数据库的工具
        │        └── ...            # 其他各种 MySQL 工具
        ├── man/            # MySQL 帮助手册
        ├── docs/             # MySQL 文档
        ├── sql/            # MySQL SQL 脚本文件
        └── zlib/            # MySQL 所依赖的 zlib 库

(二)主配置文件详解

    1、/etc/my.cnf

        [mysqld]
            [mysqld]"表示该段配置是针对MySQL服务器的
        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock
        log-error=/var/log/mysql/mysql-error.log
        pid-file=/var/run/mysql/mysql.pid
        max_connections=500
        character-set-server=utf8mb4
        collation-server=utf8mb4_unicode_ci
        [mysql]
            [mysql]"中的配置项表示该段配置是针对MySQL客户端的
        default-character-set=utf8mb4

    2、拓展配置项

        port:MySQL端口号
        log_warnings:设置错误日志是否记录警告信息
        slow_query_log_file:慢日志文件路径名
        long_query_time:当查询时间超过指定的秒数时,会被记录到慢日志中
        innodb_buffer_pool_size:InnoDB缓存池大小
        join_buffer_size:用于JOIN操作的缓存大小
        max_allowed_packet:MySQL允许传输的最大数据包大小
        skip_name_resolve:禁用DNS解析文章来源地址https://www.toymoban.com/news/detail-611191.html

到了这里,关于基于Linux操作系统中的MySQL数据库操作(三十)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(44)
  • 银河麒麟高级服务器操作系统V10安装mysql数据库

    1.检查是否已经安装mysql 2.将查询出的包卸载掉 3.将/usr/lib64/libLLVM-7.so删除 4.检查删除结果 5.搜索残余文件 6.删除残余文件 7.验证删除 8.检查MySQL用户组以及用户是否存在,若没有则创建 9.上传安装包 将mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar安装包上传到银河麒麟系统虚拟机中

    2024年02月16日
    浏览(70)
  • 【Linux OS】华为openEuler操作系统与openGauss数据库安装及使用入门

    EulerOS 是华为自主研发的服务器操作系统,支持六种处理器架构:x86,Arm,RISC—V,LoongArch,SW64和Power,能够满足客户从传统IT基础设施到云计算服务的需求。 openEuler是EulerOS的开源社区版本。 官网OS镜像下载地址:https://www.openeuler.org/zh/download/ 推荐下载LTS版,当前最新版为:

    2024年02月08日
    浏览(34)
  • 基于JavaSE+JDBC使用控制台操作的简易购物系统【源码+数据库】

    本项目是一套基于JavaSE+JDBC使用控制台操作的简易购物系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确保可以运行! JavaSE+JDBC+idea+mysql 用户角色:

    2024年02月04日
    浏览(35)
  • linux操作系统中的动静态库(未完)

    静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库 动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不

    2024年02月10日
    浏览(64)
  • Linux操作系统彻底删除MySQL——详细步骤

    注意 :在安装另一个MySQL版本之前一定要把之前MySQL版本给卸载干净。 详细步骤如下: 1、检查云服务器是否已经安装了MySQL: 如下所示: 2、查看MySQL服务是否开启: 如开启则须关闭,关闭MySQL服务: 3、查找含有MySQL的目录: 如下所示: 4、删除含有MySQL的目录,依次删除目

    2024年02月01日
    浏览(67)
  • 【Linux操作系统】深入理解系统调用中的read和write函数

    在操作系统中,系统调用是用户程序与操作系统之间进行交互的重要方式。其中,read和write函数是常用的系统调用函数,用于在用户程序和操作系统之间进行数据的读取和写入。本文将深入介绍read和write函数的工作原理、用法以及示例代码,以帮助读者更好地理解和应用这两

    2024年02月13日
    浏览(33)
  • 【Linux操作系统】Linux中的进程和线程的概念、区别和实现的细节

    在Linux中,进程和线程是操作系统中两个重要的执行单位。它们是对程序运行时的抽象概念,用于管理和调度计算机资源。 进程是正在运行的程序的实例。它是操作系统分配资源和调度执行的基本单位。每个进程都有自己独立的内存空间,包含代码、数据、堆栈等。进程还包

    2024年02月14日
    浏览(41)
  • 【操作系统】一篇文章带你理清Linux中的权限!

    🎬 乀艨ic: 个人主页 ⛺️说是高产但是还是过了快半个月才更新() ⭐️来看看这次的博客吧~ 上次注意到发Linux相关的点击量比其他的多很多,那就最近多更几篇Linux相关的吧() 注:Linux的不同发行版本的指令可能有所不同,本次是按照CentOS7的标准来进行追述的。 在谈

    2024年04月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包