在MobaXterm终端工具下使用服务器Ubuntu-20.04.5 LTS版本源码安装带有boost的Mysql8.0.20
创始人
2024-04-03 06:23:10

在MobaXterm终端工具下使用服务器Ubuntu-20.04.5LTS版本源码安装带有boost的Mysql8.0.20

    • 源码安装与普通安装的区别是什么?
    • Mysql源码下载
    • Mysql源码安装
    • Mysql调试使用
    • 注意事项

由于课程作业的需求,才会产生这样奇怪的搭配。

原本的设想是,使用源码安装Mysql,然后可以使用gdb进行调试,但是由于cmake命令忘记了设置-DWITH_DEBUG=1,导致不能debug,但是好歹也是收获了源码安装,下面就简单记录一下。

源码安装与普通安装的区别是什么?

终端工具:MobaXterm
操作系统:Ubuntu-20.04.5
Mysql数据库:带boost版本的8.0.20

注意事项:

  • Mysql选择的是源码安装,源码安装的优点是,在编译安装的过程中,可以根据自我需求设定参数,并且安装的版本可以自我选择,灵活性较大,用一句话概括就是“可定制”。
  • 源码安装其有两种,一种是带boost的,一种是不带boost的,推荐使用带boost的,boost是跨平台的C++库,如果选择的是不带boost的,那么还需要手动下载boost。

由于较为综合,所以分而治之学习比较利于循序渐进,比如分成,linux命令、mysql命令、gdb命令,这样子。

Mysql源码下载

Mysql源码下载地址:https://downloads.mysql.com/archives/community/

在这里插入图片描述
在这里插入图片描述

Mysql源码安装

  • 在MobaXterm中创建session输入网址并且使用root登录。
    在这里插入图片描述
  • 安装系统包
# 安装系统包
apt -y install make cmake gcc g++ perl bison libaio-dev libncurses5 libncurses5-dev libnuma-dev libssl-de
  • 添加mysql用户
# 添加mysql用户
groupadd mysql
useradd -r -g mysql mysql
  • 预制一些目录
# 预制一些目录
rm -rf /opt/mysql
mkdir -p /opt/mysql/download  # 存放mysql-5.7.38.tar.gz等安装包
mkdir -p /opt/mysql/install  # 存放安装后的软件
mkdir -p /opt/mysql/data  # 存放数据
mkdir -p /opt/mysql/log  # 存放日志
chown -R mysql:mysql /opt/mysql

在这里插入图片描述

  • 将下载好的包拖到download目录并使用命令行进入目录
cd /opt/mysql/download/
  • 解压压缩包
tar -zxf mysql-boost-8.0.20.tar.gz
  • 进入到压缩包目录
cd mysql-8.0.20/

在这里插入图片描述

  • 执行cmake命令预编译,注意-DWITH_DEBUG=1 是最关键的,它的作用是开启DBUG
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/install -DMYSQL_UNIX_ADDR=/opt/mysql/install/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/opt/mysql/data -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost -DWITH_DEBUG=1 -DFORCE_INSOURCE_BUILD=1 
  • 查看是否预编译成功
echo $?
0  # 如果是0,预编译通过,其他数字,表示失败,自行排错

在这里插入图片描述

  • 正式编译(预计1~4个小时)

先增加swap空间,然后再进行正式编译。

首先可以在终端中输入 free -m 查看一下SWAP交换空间的大小。

然后增大swap交换空间。

sudo dd if=/dev/zero of=/swapfile bs=1G count=6
#count的大小就是增加的swap空间的大小,1G是块大小为1G,所以空间大小是bs*count=6G
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
su
chmod 0600 /swapfile  
sudo swapon /swapfile
#使用刚才创建的swap空间

在这里插入图片描述

编译安装。

make -j4 && make install
// make -j4表示选择4个进程同时处理,通过减少进程数解决内存消耗过快的问题

make是编译的意思,就是把源码包编译成二进制可执行文件;make install 就是安装的意思;make && makeinstall的意思就是执行make如果没有发生错误就执行make install。

  • 修改安装目录的所有者和所有组
# 修改安装目录的所有者和所属组
chown -R mysql:mysql /opt/mysql
chgrp -R mysql /opt/mysql
  • 初始化生成一个临时的root密码
# 初始化,生成一个临时的mysql root用户密码
/opt/mysql/install/bin/mysqld --initialize --user=mysql
# A temporary password is generated for root@localhost: Br-)u/%:=2:9
# 这个密码也会写入 /root/.mysql_secret中
  • 启动mysql修改root密码为123456
# 启动mysql,修改root密码为123456
/opt/mysql/install/support-files/mysql.server start # 启动后,按回车回到命令行
/opt/mysql/install/bin/mysql -u root -p
Enter Password: # 这里输入刚才生成的密码
//注意不同版本的mysql可能语法不同
mysql> ALTER user root@'localhost' identified by '123456';

在这里插入图片描述

如果不按照上面的做法做,可能会出现下面的悲剧。

第一次网络断了错了。
在这里插入图片描述

第二次session掉了错了。

在这里插入图片描述

第三次内存不足断了。

在这里插入图片描述
在这里插入图片描述

第四次终于呜呜呜。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
终于成功了,可惜不能debug!!!!!!

Mysql调试使用

  • 启动mysql
/opt/mysql/install/support-files/mysql.server start # 启动后,按回车回到命令行
  • 登录root
/opt/mysql/install/bin/mysql -u root -p
  • 创建数据库
create database test;
use test;
  • 创建表
create table a(bb varchar(10));
  • 处理数据
insert into a values(123);
select * from a;

在这里插入图片描述
在这里插入图片描述

!!新开一个终端!!

  • 查看mysql进程
ps -ef | grep mysql
//找pid

在这里插入图片描述

  • 开启gdb
sudo gdb
  • 使用gdb连接进程调试
attach pid

在这里插入图片描述

在这里插入图片描述

可是不是debug不能调试。。。。

在这里插入图片描述
在这里插入图片描述

注意事项

其实不断地失败失败失败……成功……失败失败失败……成功……,多少会有一点挫败感的,有时候也会由于这种害怕而不敢前进,但其实按理来说,现在趁着年轻应该是试错成本最低的时候,不妨大胆一点,没有标准说一定要有可量化的东西出来才算成功,失败才是人生的常态,提升面对失败的心境本身也是一种收获。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...