linux下Mysql 8.0.19 编译安装

linux下Mysql 8.0.19 编译安装1 前言 linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,…

linux下Mysql  8.0.19 编译安装

编译安装需要大量的耐心与时间,而且还会遇到非常多奇奇怪怪的问题,因此,需要极大的毅力,很有可能一万次失败也换不来一次的成功,请做好心理准备。

2 准备工作

下面是安装要求,已安装的可以跳过。

  • cmake
  • boost
  • gcc
  • ncurses
  • openssl
  • bison
  • doxygen

2.1 gcc

gcc的话一般linux都配备,最低要求版本为5.3,需要更新的话可以看笔者的另一篇博客

2.2 boost

boost不需要手动安装,后面运行cmake脚本的时候会自动下载安装,当然也可以手动安装,官网的文档说是需要特定版本,这里的MySQL Server 8.0.19需要的是1.70.0,目前最新的boost库为1.72.0。

在这里插入图片描述

在这里插入图片描述

2.3 cmake

看笔者的另一篇博客

2.4 其他

其他一般使用仓库安装即可,当然也可以每一个都去折腾从源码安装,你喜欢就好。

2.4.1 Red Hat系

7.x:

sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen

代码100分

8.x:

代码100分sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel

2.4.2 ubuntu系

sudo apt-get update
sudo apt-get install -y bison git hostname libncurses-dev libssl-dev make openssl pkg-config doxygen

3 下载与解压

3.1 下载

MySQL Server下载

这里不知道带boost与不带boost的有什么区别,后面使用cmake的时候都需要手动下载boost,所以就随便选一个吧。有知道的大神可以留言,小弟感激不尽。 在这里插入图片描述

3.2 解压

代码100分tar -zxvf mysql-boost-8.0.19.tar.gz
cd mysql-8.0.19

3.3 创建临时bld文件夹

mkdir bld
cd bld

4 编译与安装

4.1 cmake

cmake .. 
-DDOWNLOAD_BOOST=1 
-DWITH_BOOST=. 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci 
-DENABLED_LOCAL_INFILE=ON 
-DWITH_SSL=system 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DMYSQL_TCP_PORT=3306 

安装了boost的可以不需要:

-DDOWNLOAD_BOOST=1 
-DWITH_BOOST

安装位置与数据位置根据需要自定义:

-DCMAKE_INSTALL_PREFIX=
-DMYSQL_DATADIR=

在这里插入图片描述

4.2 编译

make -j n

n为cpu核心数,若失败请直接使用

make

这里编译需要比较长的时间,有进度提示。

在这里插入图片描述

4.3 安装

sudo make install

这里笔者遇到了libstdc++.so.6这个库的问题,MySQL Server 8.0.19安装需要GLIBCXX_3.4.25. 可以看看自己的libstdc++.so.6的路径:

sudo find / -name lidstdc++.so.6

找到路径之后:

strings /xxx/libstdc++.so.6 | grep GLIBCXX

在这里插入图片描述

笔者这里只有GLIBCXX_3.4.22,由于之前手动更新了gcc,在gcc的lib目录中:

在这里插入图片描述

因此只需要根据sudo make install的提示把这个libstdc++.so.6复制到/lib/:

sudo cp libstdc++.so.6 /lib/x86_64-linux-gnu/

另一种解决办法是(针对Ubuntu系),添加ppa源,然后update:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

其他的也类似,更新gcc,手动指定lib的位置。

在这里插入图片描述

安装成功。

4.4 测试

make test

在这里插入图片描述

测试通过。

5 配置MySQL

安装完成后还需要进行MySQL的配置。

5.1 新建用户组与用户

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

5.2 修改数据目录所有者与权限

数据目录根据需要修改。

sudo chown mysql:mysql /usr/local/mysql/data
sudo chmod 777 /usr/local/mysql/data

这里官网的文档写的是750权限,但是后面会出现不可写错误,755也不行,所以直接改成了777。

在这里插入图片描述

5.3 my.cnf

my.cnf在/etc或/etc/mysql下,笔者这里安装后默认有一个my.cnf在/etc/mysql下:

在这里插入图片描述

/etc/mysql/my.cnf是全局配置,~/.my.cnf是用户特定的配置,这里直接修改/etc/mysql/my.cnf:

[mysqld]
port=3306
basedir=/usr/local/mysql/server
datadir=/usr/local/mysql/data
character-set-server=utf8mb4
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8

参数根据需要可以后期添加,这里如果使用utf8:

[mysqld]
character-set-server=utf8

会有警告,因为MySQL5.5.3之后增加了utf8mb4,mb4是most bytes 4的意思,专门用来兼容四字节的unicode,utf8指的是utf8mb3,支持的utf8编码最大字符长度为3字节,警告提示改成utf8mb4:

[mysqld]
character-set-server=utf8mb4

(额外阅读:utf8与utf8mb4

5.4 初始化

进入到MySQL Server的安装目录下的bin:

mysqld --initialize-insecure --user=mysql

在这里插入图片描述

这里使用-insecure是因为后面不用输入随机密码。当然也可以去掉insecure,这样就会有一个随机密码,要记住。

mysqld --initialize --user=mysql

在这里插入图片描述

5.5 支持ssl与rsa(可选)

mysql_ssl_rsa_setup

这个一般服务器需要。

5.6 开启服务

mysqld_safe --user=mysql &

5.7 修改root密码

先用root登录

mysql -u root --skip-password

如果是使用initialize初始化的,输入

mysql -u root -p

输入刚才的临时密码。 进去之后,使用alter修改root密码:

alter "root"@"localhost" identified by "xxxxx"

5.8 测试

使用自带的mysqlshow与mysqladmin:

mysqladmin -u root -p version
mysqlshow -u root -p

在这里插入图片描述

完成,至此MySQL Server8.0.19安装完毕。

6 后续处理

6.1 删除文件

可以先把安装文件给删去:

sudo rm -rf mysql-8.0.19*

另外,根据刚才cmake的时候的boost目录可以把boost库给删去:

sudo rm -rf boost_1_70_0*

因为文档说只是需要boost去build,不需要使用。

在这里插入图片描述

6.2 别名

加个别名只是为了方便使用,这里笔者的做法其实很偷懒,默认root登录,修改~/.bash_aliases:

alias mysqld="/usr/local/mysql/bin/mysqld_safe --user=mysql &"
alias mysql="/usr/local/mysql/bin/mysql -u root -p"

使用MySQL之前使用mysqld启动服务挂后台,然后使用mysql登录,默认root用户。 当然更偷懒的做法是

alias mysql="/usr/local/mysql/bin/mysql -u root --password=xxxx"

这样密码都不用输了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9676.html

(0)
上一篇 2023-02-03
下一篇 2023-02-03

相关推荐

  • [20220106]ora-00600 kokasgi1.txt

    [20220106]ora-00600 kokasgi1.txt[20220106]ora-00600 kokasgi1.txt–//上午看了https://www.xifenfei.com/2022/01/2022-first-recovery-ora-600

    2023-05-04
    146
  • mysql新手入门_MySQL数据库教程

    mysql新手入门_MySQL数据库教程前面写了几篇前序学习,可以去先了解看看噢!! 此篇为续篇之终四,话不多说,上货!! MySQL 一. 约束与策略 1.主键自增策略 通常情况下,主键基本都是id。 Id赋值: 随机32位字符串:va…

    2023-02-18
    150
  • 动手测起来!搭载全自研数据库内核,我们将性能提升了20%「终于解决」

    动手测起来!搭载全自研数据库内核,我们将性能提升了20%「终于解决」近日,腾讯云MySQL发布新架构,在基础硬件能力、自研内核及外部网络延迟等方面进行了全面升级。 在探究新版本实际性能的过程中,测试人员通过基准测试工具SysBench以及全仿真业务生产环境,分别针对只

    2023-06-05
    146
  • Python中常用的列表操作

    Python中常用的列表操作a href=”https://www.python100.com/a/sm.html”font color=”red”免责声明/font/a a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2023-12-13
    120
  • 数据库事务与特性「终于解决」

    数据库事务与特性「终于解决」事务是数据库中的一个概念,在交易系统和复杂业务中经常被提及。对于简单的增删改查场景,特别是学习阶段,不需要考虑诸如并发、锁等问题,但是我们要对事务的概念及特性有所了解,以便日后能够快速定位问题和给出…

    2023-03-29
    144
  • 使用Python字符串分割split方法来实现标题包装

    使用Python字符串分割split方法来实现标题包装在Python中,字符串是一个很重要的数据类型。我们在开发的过程中,很多时候都需要对字符串进行操作。其中,split()方法是常用的一种字符串操作方法。本文将介绍如何使用Python字符串分割split方法来实现标题包装。

    2024-04-28
    71
  • 基于Python的慢性病数据复杂条件查重方法实现及改进「终于解决」

    基于Python的慢性病数据复杂条件查重方法实现及改进「终于解决」近期因为工作需要,对原来的SAS慢性病监测数据季报审核程序进行了Python的重构,在重写的过程中,发现查重部分特别有意思,写出来和大家分享一下。 在网上说起查重,大部分的搜索结果是用pandas里…

    2023-03-28
    158
  • 如何在Linux上卸载Python 3

    如何在Linux上卸载Python 3Python是一种非常流行的编程语言,常用于数据处理、Web应用程序和自动化脚本。在Linux系统中,Python通常是默认安装的,但是有时候需要移除或卸载Python 3。在本文中,我们将会探讨如何在Linux上卸载Python 3。

    2024-09-03
    23

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注