数据库第二次作业

序号安装方式说明
1二进制解压,简单配置就可使用 免安装 mysql-a.b.c-linux2.x-x86_64.tar.gz
2源码制成rpm包把源码制作成符合要求的rpm,通过yum安装
3yum\rpm简单、快速,不能定制参数
4源码编译可以定制参数,安装时间长 mysql-a.b.c.tar.gz

MySQL RPM包下载
官网下载地址:

https://dev.mysql.com/downloads/mysql/

1. Linux环境二进制安装MySQL
MySQL二进制包下载
官网下载地址:https://dev.mysql.com/downloads/mysql/


安装 MySQL
## 用户及目录创建

 

注:可以部署多个实例,通过端口区分root 用户操作:

mkdir -p /mysql/data/mysql3306

mkdir -p /mysql/app/

mkdir -p /mysql/conf/

mkdir -p /mysql/data/mysql3306/pid/

mkdir -p /mysql/data/mysql3306/socket/

mkdir -p /mysql/data/mysql3306/log/

mkdir -p /mysql/data/mysql3306/binlog/

mkdir -p /mysql/data/mysql3306/errlog

mkdir -p /mysql/data/mysql3306/relaylog/

mkdir -p /mysql/data/mysql3306/slowlog/

mkdir -p /mysql/data/mysql3306/tmp/

## 用户及组

[root@rhel76 ~]# groupadd mysql

[root@rhel76 ~]# useradd -g mysql mysql

[root@rhel76 ~]# chown -R mysql:mysql /mysql

[root@rhel76 ~]# passwd mysql

Changing password for user mysql.

New password:

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:

passwd: all authentication tokens updated successfully.

[root@rhel76 ~]# cat /etc/group | grep mysql

mysql:x:1001:

[root@rhel76 ~]# cat /etc/passwd | grep mysql

mysql:x:1001:1001::/home/mysql:/bin/bash

## 上传软件包并解压

[root@rhel76 ~]# cp mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz /mysql/app

[root@rhel76 ~]# chown -R mysql:mysql /mysql

mysql用户操作

[root@rhel76 ~]# su - mysql

md5 值验证,保证下载到的软件包无破损无木马

[mysql@rhel76 ~]$ cd /mysql/app

[mysql@rhel76 app]$ ll

total 1168588

-rw-r--r-- 1 mysql mysql 1196633756 Nov 24 00:49 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

[mysql@rhel76 app]$ md5sum mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

0bdd171cb8464ba32f65f7bf58bc9533 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

解压软件包并重命名

[mysql@rhel76 app]$ tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

[mysql@rhel76 app]$ mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8.0.27

[mysql@rhel76 app]$ ll

total 1168588

drwxrwxr-x 9 mysql mysql 129 Nov 24 00:54 mysql8.0.27

-rw-r--r-- 1 mysql mysql 1196633756 Nov 24 00:49 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

2. yum安装依赖包
yum -y install lrzsz wget perl-Digest-MD5

yum -y install numactl

yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

添加用户及组

[root@jeames ~]# groupadd mysql

删除组:groupdel users

--用户加到组并指定根目录

[root@jeames ~]# useradd -g mysql -d /home/mysql mysql

useradd: warning: the home directory already exists.

Not copying any file from skel directory into it.

删除用户:userdel mysql

[root@jeames ~]# passwd mysql

New password:

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:

passwd: all authentication tokens updated successfully.

安装Mysql

[root@jeames ~]# md5sum mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar

edf4d0f95867f62cdcc97b7349bedc59 mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar

[root@jeames ~]# tar -xvf mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar -C /home/mysql/

## 必须安装的四个RPM包

mysql-community-common-8.0.27-1.el8.x86_64.rpm

mysql-community-libs-8.0.27-1.el8.x86_64.rpm

mysql-community-client-8.0.27-1.el8.x86_64.rpm 是客户端的安装包

mysql-community-server-8.0.27-1.el8.x86_64.rpm 是服务端的安装包

## 授权

root@jeames ~]# chown -R mysql:mysql /home/mysql/

## 安装

注:root用户下操作

[root@jeames ~]# cd /home/mysql/

装顺序:包之间相互依赖,所以必须注意安装顺序

✓ 先装 common

✓ 再装 libs

✓ 再装 client

✓ 最后装 server

[root@jeames mysql]# rpm -ivh mysql-community-common-8.0.27-1.el8.x86_64.rpm

[root@jeames mysql]# rpm -ivh --force --nodeps mysql-community-libs-8.0.27-1.el8.x86_64.rpm

[root@jeames mysql]# rpm -ivh mysql-community-client-8.0.27-1.el8.x86_64.rpm --force --nodeps

[root@jeames mysql]# rpm -ivh mysql-community-server-8.0.27-1.el8.x86_64.rpm --f

Linxu环境源码安装MySQL
Mysql源码下载
官网下载地址:https://dev.mysql.com/downloads/mysql/

安装及配置
## 编译

[root@jeames007 ~]# mkdir /soft

[root@jeames007 ~]# mv mysql-boost-8.0.27.tar.gz /soft/

[root@jeames007 ~]# cd /soft

[root@jeames007 soft]# tar -zxf mysql-boost-8.0.27.tar.gz

[root@jeames007 soft]# ll

total 285340

drwxr-xr-x 31 7161 31415 4096 Sep 28 13:22 mysql-8.0.27

-rw-r--r-- 1 root root 292184025 Nov 25 15:08 mysql-boost-8.0.27.tar.gz

[root@jeames007 soft]# cd mysql-8.0.27

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_EMBEDDED_SERVER=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/soft/mysql-8.0.27/boost/boost_1_73_0 \

-DFORCE_INSOURCE_BUILD=1

[root@jeames007 ~]# make -j4 --此处编译需要1个小时,一定要耐心等待

[root@jeames007 ~]# make install

## 用户及组

groupadd mysql

useradd -g mysql mysql

chown -R mysql:mysql /usr/local/mysql

## 参数文件

cat > /etc/my.cnf <<"EOF"

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port=3306

server_id=80273306

log-bin

skip-name-resolve

character_set_server=utf8mb4

default-time-zone = '+8:00'

log_timestamps = SYSTEM

EOF

## 初始化

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

## 环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /root/.bashrc

source /root/.bashrc

## 启动Mysql

#启动 MySQL

mysqld_safe &

#登录 mysql,默认密码为空

mysql -uroot -p

#关闭 MySQL

mysqladmin -uroot -p shutdown

关于头歌数据库第一次作业的相关资料或指导,虽然无法提供具体的答案,但可以基于已有的引用内容以及专业知识给出一些提示和建议。 ### 关于SQL查询的基础知识 如果头歌数据库的第一次作业涉及SQL查询基础,则可能需要掌握复杂的嵌套查询语法。例如,在引用中提到的一个例子展示了如何使用`ALL`关键字进行条件过滤[^1]: ```sql SELECT col1 FROM table1 WHERE col1 > ALL (SELECT col2 FROM table2); ``` 上述代码表示从表 `table1` 中选取满足大于 `table2` 所有记录值的字段 `col1` 的所有行。这种类型的查询通常用于多表关联场景下的复杂筛选逻辑。 --- ### HTAP数据库的概念及其应用背景 对于更高级别的数据库设计或者优化题目,可能会涉及到HTAP(Hybrid Transactional/Analytical Processing)数据库的设计理念。根据已有引用描述[^2],HTAP数据库分为两类不同的架构模式: - **第一类**:以列存为主的系统(如 SAP HANA),其特点是高性能的OLAP查询能力和相对适中的OLTP事务处理能力; - **第二类**:分布式行存为主、列存为辅助副本的结构(如 TiDB)。这类系统的优点在于高度可扩展性和对两种工作负载的良好平衡支持。 这些概念可以帮助理解现代数据库管理系统是如何兼顾实时交易需求与大规模数据分析任务的要求。 --- ### 窗口函数的应用技巧 另外还提到了窗口函数相关内容[^3],这可能是某些练习的重点之一。“PARTITION BY”引导的是分区内部分析操作,“ORDER BY”则定义了每一分区内的顺序排列方式。下面是一个简单的示例展示如何利用窗口函数计算累计销售额: ```sql SELECT product_id, sale_date, amount, SUM(amount) OVER(PARTITION BY product_id ORDER BY sale_date) AS cumulative_sales FROM sales; ``` 此脚本会针对每一个产品分别按照日期升序累积求和销售金额。 --- #### 提醒事项 由于具体课程安排未知,请自行确认实际考核范围是否覆盖以上知识点。同时注意遵循学术诚信原则完成个人学习成果提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值