Linux编译安装mysql5.7.44 笔记250330

news2025/4/3 1:19:06

Linux编译安装mysql5.7.44

以下是在Linux系统上通过编译源码安装MySQL 5.7.44的详细步骤:


     准备工作
         1. 安装依赖库
Debian/Ubuntu

# Debian/Ubuntu
sudo apt update
sudo apt install -y gcc g++ cmake make libncurses5-dev libssl-dev libboost-dev \
  bison libaio-dev libreadline-dev zlib1g-dev libboost-all-dev pkg-config

CentOS/RHEL

# CentOS/RHEL
sudo yum install -y gcc gcc-c++ cmake make ncurses-devel openssl-devel \
  bison libaio-devel readline-devel zlib-devel pkg-config

         2. 下载MySQL 5.7.44源码
下载页: https://downloads.mysql.com/archives/community/

无boost的版本:

#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz
tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44

自带boost的版本:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz
tar -zxvf mysql-boost-5.7.44.tar.gz
cd mysql-5.7.44

注意:如果链接失效,可访问 MySQL Archives 手动下载对应版本。


     编译与安装
         3. 配置编译参数
无boost的版本用👇

mkdir build
cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DSYSCONFDIR=/etc \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DENABLED_LOCAL_INFILE=1 \
  -DMYSQL_TCP_PORT=3306 \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_general_ci \
  -DENABLE_DOWNLOADS=1 \
  -DWITH_BOOST=/usr/local/include    -DDOWNLOAD_BOOST=1    # 用于无boost版,会自动下载boost1.59.0版 到 -DWITH_BOOST指定的文件夹下的boost_1_59_0文件夹
  ## 只能用boost.1.59.0版  -DDOWNLOAD_BOOST=1 会自动下载boost.1.59.0版 到 -DWITH_BOOST指定的文件夹下的boost_1_59_0文件夹

带boost的版本用👇

mkdir build
cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DSYSCONFDIR=/etc \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DENABLED_LOCAL_INFILE=1 \
  -DMYSQL_TCP_PORT=3306 \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_general_ci \
  -DENABLE_DOWNLOADS=1 \
  -DWITH_BOOST=../boost/boost_1_59_0  # 用于自带boost版

         4. 编译并安装

make -j$(nproc)        # 使用多核编译(根据CPU核心数调整)
sudo make install      # 安装到指定目录

     初始化与配置

         5.创建mysql用户和组:

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

         6. 初始化数据库

cd /usr/local/mysql
sudo mkdir -p data
sudo chown -R mysql:mysql .
sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

无密码:

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

带密码:

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

初始化完成后,记录输出的临时root密码(类似 A temporary password is generated for root@localhost: xxxxxx)。
没有配置日志则密码输出到控制台, 否则默认输出到日志, 默认不带日志

         7. 启动MySQL服务

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
sudo systemctl daemon-reload
sudo systemctl enable mysqld --now

可看出 /etc/init.d/mysqld 来自 /usr/local/mysql/support-files/mysql.server 是一个sh脚本

查看 /etc/init.d/mysqld 可看出很多默认设置

less /usr/local/mysql/support-files/mysql.server

         8. 配置my.cnf文件,可省略,/etc/my.cnf默认不存在
apt安装的mysql默认配置文件在 /etc/mysql/下,
编译安装的mysql默认配置文件直接在/etc下, 为 /etc/my.cnf
可以通过查看 /usr/local/mysql/support-files/mysql.server 看出

vi /usr/local/mysql/support-files/mysql.server
sudo nano /etc/mysql/my.cnf  # 默认不存在, 按需修改配置(如字符集、内存参数等)

模板1:

sudo tee /etc/my.cnf <<-'EOFxxxXXXeof---'
[mysqld]
# 基础配置
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8mb4
explicit_defaults_for_timestamp=true

# 日志配置
log-error=/usr/local/mysql/log/mysql.err
pid-file=/usr/local/mysql/mysql.pid

# 复制和GTID(可选,如需主从配置)
server-id=10001
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON

[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock
EOFxxxXXXeof---

模仿apt安装,/etc/mysql/my.cnf只用于引入文件夹,配置文件必须已.cnf结尾:

if [ -d "/etc/mysql" ]  ;then echo '文件夹已存在'  ;else mkdir /etc/mysql  ;fi
sudo tee /etc/mysql/my.cnf <<-'EOFxxxXXX---eofXXXxxx'
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
EOFxxxXXX---eofXXXxxx

if [ ! -d "/etc/mysql/conf.d/" ] ;then mkdir -p /etc/mysql/conf.d ;fi
if [ ! -d "/etc/mysql/mysql.conf.d/" ] ;then mkdir -p /etc/mysql/mysql.conf.d ;fi

sudo tee /etc/mysql/mysql.conf.d/Hello.cnf <<-'EOFxxxXXXeof------EOFxxxXXXeof'
[mysqld]
# 基础配置
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8mb4
explicit_defaults_for_timestamp=true

# 日志配置
log-error=/usr/local/mysql/log/mysql.err
pid-file=/usr/local/mysql/mysql.pid

# 复制和GTID(可选,如需主从配置)
server-id=10001
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON

[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock
EOFxxxXXXeof------EOFxxxXXXeof

模板1:

sudo tee /etc/my.cnf <<-'EOFxxxXXXeof---'
[mysqld]
# 基础配置
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8mb4
explicit_defaults_for_timestamp=true

# 日志配置
log-error=/usr/local/mysql/log/mysql.err
pid-file=/usr/local/mysql/mysql.pid

# 复制和GTID(可选,如需主从配置)
server-id=10001
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON

[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock
EOFxxxXXXeof---

     启动与使用

         9. 登录mysql, 修改root密码

无密码

/usr/local/mysql/bin/mysql -uroot

有密码

/usr/local/mysql/bin/mysql -u root -p

修改密码方法1:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;

修改密码方法2:

SET PASSWORD='你的新密码';    FLUSH PRIVILEGES;

         10. 设置环境变量
当前用户范围:

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

全局:

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

     可选操作
         配置systemd服务(推荐)

sudo nano /etc/systemd/system/mysql.service

输入以下内容:

[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reload
sudo systemctl start mysql
sudo systemctl enable mysql










以下是在Linux系统上编译安装MySQL 5.7.44的详细步骤:


     1. 安装依赖项

Ubuntu/Debian

# Ubuntu/Debian
sudo apt update
sudo apt install cmake make gcc g++ libncurses-dev libssl-dev bison pkg-config

CentOS/RHEL

# CentOS/RHEL
sudo yum install cmake make gcc gcc-c++ ncurses-devel openssl-devel bison pkg-config

     2. 下载MySQL源码

# 进入临时目录
cd /tmp

# 下载源码包(从官方或镜像站点获取)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz

# 验证文件完整性(可选)
md5sum mysql-boost-5.7.44.tar.gz  # 应输出 1a637fce4599d9bf5f1c81699f086274 

     3. 解压并编译

# 解压源码
tar -zxvf mysql-boost-5.7.44.tar.gz
cd mysql-5.7.44

# 配置编译选项(关键步骤)
mkdir build
cd build

cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=../boost

# 开始编译(根据CPU核心数调整 -j 参数)
make -j $(nproc)

# 安装
sudo make install

     4. 初始化数据库
带初始密码

# 创建mysql用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

# 创建数据目录并设置权限
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

# 初始化数据库(记录临时root密码)
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 输出示例:临时密码为 `A temporary password is generated for root@localhost: xxxxxxxx`

无初始密码

# 创建mysql用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

# 创建数据目录并设置权限
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

# 初始化数据库(记录临时root密码)
sudo /usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# --initialize-insecure 无初始密码

     5. 启动MySQL服务

# 复制配置文件
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld

# 启动服务
sudo service mysqld start

# 设置开机自启
sudo update-rc.d mysqld defaults  # Debian/Ubuntu
# 或
sudo chkconfig --add mysqld       # CentOS/RHEL

     6. 配置环境变量

# 编辑 ~/.bashrc 或 /etc/profile
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

     7. 登录并修改root密码

# 使用临时密码登录
mysql -u root -p

# 修改密码(MySQL 5.7+需满足密码策略)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';
FLUSH PRIVILEGES;

     8. 验证安装

mysql -V
# 应输出:mysql  Ver 5.7.44 for Linux on x86_64 (...)

     常见问题

  1. 依赖缺失:根据错误提示安装对应开发库(如 libtinfo-dev)。
  2. CMake错误:确保CMake版本 ≥ 2.8,并检查编译选项语法。
  3. 初始化失败:检查文件权限和数据目录路径。
  4. 内存不足:添加交换空间或调整 make -j 参数。

     附加说明

  • 二进制安装替代方案:若无需定制编译,建议直接使用官方二进制包或Docker镜像。
  • 安全加固:安装后运行 mysql_secure_installation 进行安全设置。

如有具体环境差异(如发行版版本或硬件架构),请提供详细信息以进一步调整步骤。










以下是基于知识库信息整理的 Linux系统下编译安装MySQL 5.7.44 的详细步骤:


     一、安装前准备

  1. 下载MySQL二进制包
    MySQL 5.7.44为二进制免编译包(无需源码编译),从官网下载对应版本:

    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
    

    (注意:如果是CentOS 7等系统,选择mysql-5.7.44-el7-x86_64.tar.gz

  2. 上传并解压到指定目录

    # 解压到临时目录(如当前目录)
    tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
    
    # 将解压后的目录移动到安装路径(如 `/usr/local/mysql`)
    sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
    
    # 进入MySQL安装目录
    cd /usr/local/mysql
    
  3. 创建MySQL用户和组

    # 创建用户组和用户
    sudo groupadd mysql
    sudo useradd -r -g mysql -s /sbin/nologin mysql
    
    # 将目录权限赋予mysql用户
    sudo chown -R mysql:mysql /usr/local/mysql
    
  4. 安装依赖库
    如果遇到依赖错误(如缺少libaio),需提前安装:

    sudo yum install -y libaio libaio-devel
    

     二、初始化数据库

  1. 创建数据目录并授权

    # 在安装目录下创建data目录(存放数据库文件)
    sudo mkdir /usr/local/mysql/data
    
    # 授权目录给mysql用户
    sudo chown -R mysql:mysql /usr/local/mysql/data
    
  2. 初始化MySQL

    # 进入MySQL的bin目录执行初始化
    cd /usr/local/mysql/bin
    ./mysqld --initialize --user=mysql \
      --basedir=/usr/local/mysql \
      --datadir=/usr/local/mysql/data
    
    • 初始化完成后会生成临时密码(如 6x<tqpxgie!F),需记录下来,后续登录时使用。

     三、配置MySQL

  1. 创建配置文件 /etc/my.cnf
    根据知识库中的配置示例,编辑配置文件:

    sudo vim /etc/my.cnf
    

    添加以下内容(根据需求调整):

    [mysqld]
    # 基础配置
    user=mysql
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=utf8mb4
    explicit_defaults_for_timestamp=true
    
    # 日志配置
    log-error=/usr/local/mysql/log/mysql.err
    pid-file=/usr/local/mysql/mysql.pid
    
    # 复制和GTID(可选,如需主从配置)
    server-id=10001
    log-bin=mysql-bin
    binlog_format=ROW
    gtid_mode=ON
    enforce_gtid_consistency=ON
    
    [client]
    default-character-set=utf8mb4
    socket=/tmp/mysql.sock
    
  2. 创建日志和数据目录

    sudo mkdir -p /usr/local/mysql/log
    sudo chown -R mysql:mysql /usr/local/mysql/log
    

     四、启动MySQL服务

  1. 将MySQL加入系统服务

    # 复制启动脚本到服务目录
    sudo cp support-files/mysql.server /etc/init.d/mysql
    
    # 设置服务可执行权限
    sudo chmod +x /etc/init.d/mysql
    
    # 设置开机自启(CentOS 7+ 使用systemctl)
    sudo chkconfig --add mysql  # 旧版本
    sudo systemctl enable mysql # CentOS 7+
    
  2. 启动MySQL服务

    sudo service mysql start  # 使用service启动
    # 或
    sudo systemctl start mysql
    

     五、登录与密码修改

  1. 登录MySQL
    使用初始化时生成的临时密码登录:

    # 进入bin目录执行
    cd /usr/local/mysql/bin
    ./mysql -uroot -p
    
  2. 修改root密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    FLUSH PRIVILEGES;
    
  3. 配置远程访问(可选)

    USE mysql;
    UPDATE user SET Host='%' WHERE User='root';  # 允许所有IP访问
    FLUSH PRIVILEGES;
    

     六、验证安装

  1. 检查MySQL状态

    sudo service mysql status
    # 或
    sudo systemctl status mysql
    
  2. 测试连接

    # 本地连接
    ./mysql -uroot -p -S /tmp/mysql.sock
    
    # 远程连接(需开放3306端口)
    mysql -h你的IP -uroot -p -P3306
    

     常见问题解决

  1. 依赖库缺失

    sudo yum install -y libaio numactl-libs
    
  2. 权限错误
    确保数据目录和日志目录的权限为 mysql:mysql

    sudo chown -R mysql:mysql /usr/local/mysql/{data,log}
    
  3. 端口冲突
    检查3306端口是否被占用:

    netstat -tlnp | grep 3306
    

     附:主从复制配置参考
如需搭建主从(基于GTID),参考知识库中的步骤:

  1. 主库配置
    my.cnf中添加:
    server-id=1003306
    log-bin=mysql-bin
    gtid_mode=ON
    enforce_gtid_consistency=ON
    
  2. 备库配置
    设置唯一server-id,并开启GTID。
  3. 创建复制用户
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';
    
  4. 同步数据并启动从库
    使用mysqldump备份主库,恢复到备库后执行:
    CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_AUTO_POSITION=1;
    START SLAVE;
    

通过以上步骤,您可以在Linux系统上成功安装并配置MySQL 5.7.44。如需进一步优化或故障排查,可参考知识库中提到的详细配置项。










在Linux系统上编译安装MySQL 5.7.44,可按如下步骤操作:

     1. 安装必要的依赖
在编译MySQL之前,需要安装一系列必要的依赖包,这些包可以帮助完成编译过程。

sudo apt-get update
sudo apt-get install -y build-essential cmake bison libncurses5-dev libssl-dev libaio-dev

     2. 下载MySQL 5.7.44源代码
可以从MySQL官方网站下载MySQL 5.7.44的源代码压缩包。

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz

     3. 解压源代码

tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44

     4. 创建CMake配置文件
在编译之前,需要使用CMake生成Makefile文件。

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci

     5. 编译并安装

make -j$(nproc)
sudo make install

     6. 配置MySQL
创建MySQL用户和用户组,并设置相应的权限。

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql /usr/local/mysql

     7. 初始化MySQL数据目录

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

     8. 启动MySQL服务

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo systemctl enable mysql

     9. 查找初始密码并登录
在初始化数据目录时,MySQL会生成一个初始密码。你可以通过以下命令查找这个密码:

sudo grep 'temporary password' /usr/local/mysql/data/error.log

使用查找到的初始密码登录MySQL:

/usr/local/mysql/bin/mysql -u root -p

     10. 修改初始密码
登录后,你需要修改初始密码以提高安全性:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

按照以上步骤,你就可以在Linux系统上成功编译安装MySQL 5.7.44。










以下是Linux上编译安装MySQL 5.7.44的详细步骤:

     1. 卸载旧版本的MySQL或MariaDB

rpm -qa | grep mariadb
rpm -qa | grep mysql
yum remove -y [查询到的包名]

如果系统中没有安装过MySQL或MariaDB,可以跳过这一步。

     2. 安装编译所需的依赖库

yum install -y ncurses libaio-devel ncurses-devel openssl-devel gcc gcc-c++ make cmake cmake3 git gmp mpfr bison m4 libtool autoconf automake openldap openldap-clients openldap-servers openldap-devel migrationtools cyrus-sasl bison-devel openssl libtirpc libtirpc-devel libarchive

如果需要更高版本的编译工具,可以手动安装相关RPM包。

     3. 创建目录结构

mkdir -p /opt/software/mysql/{mysql,data,logs,tmp}

该目录将用于存放MySQL的安装文件和数据。

     4. 下载MySQL源码包

mkdir -p /opt/package/mysql_package && cd /opt/package/mysql_package
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.44.tar.gz

下载的包中包含Boost库,这是MySQL 5.7.44的依赖。

     5. 解压源码包

tar -zxvf /opt/package/mysql_package/mysql-boost-5.7.44.tar.gz -C /opt/software/mysql

解压后,源码将位于/opt/software/mysql/mysql-5.7.44目录。

     6. 配置编译环境

mkdir /opt/software/mysql/build && cd /opt/software/mysql/build
cmake3 -j10 /opt/software/mysql/mysql-5.7.44 \
    -DCMAKE_INSTALL_PREFIX=/opt/software/mysql/mysql \
    -DSYSCONFDIR=/etc \
    -DMYSQL_DATADIR=/opt/software/mysql/data \
    -DMYSQL_TCP_PORT=3306 \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_SSL=system \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_BOOST=/opt/software/mysql/mysql-5.7.44/boost \
    -DENABLE_DOWNLOADS=1

确保-DWITH_BOOST参数指向正确的Boost库路径。

     7. 编译和安装

make && make install

编译过程可能需要较长时间,完成后MySQL将安装到/opt/software/mysql/mysql目录。

     8. 创建MySQL用户和组

groupadd mysql
useradd -r -g mysql -M -s /sbin/nologin mysql

确保MySQL服务以非root用户运行。

     9. 初始化MySQL

cd /opt/software/mysql/mysql/bin
./mysqld --initialize --basedir=/opt/software/mysql/mysql --datadir=/opt/software/mysql/data --user=mysql

初始化过程中会生成初始密码,记录下来以便后续使用。

     10. 配置MySQL服务
将MySQL的启动脚本添加到系统服务:

cp /opt/software/mysql/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start

启动MySQL服务。

     11. 配置环境变量(可选)
将MySQL的bin目录添加到系统环境变量:

echo 'export PATH=/opt/software/mysql/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

这样可以直接在命令行中使用MySQL命令。

     12. 登录并修改密码

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

使用初始密码登录后,修改为新密码。

完成以上步骤后,MySQL 5.7.44将成功安装并运行在您的Linux系统上。










以下是Linux系统编译安装MySQL 5.7.44的详细步骤:


     一、准备工作

  1. 安装依赖项

    # CentOS/RHEL
    sudo yum install -y cmake gcc-c++ ncurses-devel openssl-devel bison make
    
    # Ubuntu/Debian
    sudo apt-get install -y cmake g++ libncurses5-dev libssl-dev bison make
    
  2. 创建专用用户

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    
  3. 下载源码包

    wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44.tar.gz
    tar -zxvf mysql-5.7.44.tar.gz
    cd mysql-5.7.44
    

     二、配置编译参数

mkdir build
cd build
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_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=../boost

     三、编译与安装

make -j$(nproc)  # 根据CPU核心数加速编译
sudo make install

     四、初始化配置

  1. 设置目录权限

    cd /usr/local/mysql
    sudo chown -R mysql:mysql .
    sudo mkdir -p /var/log/mysql
    sudo chown mysql:mysql /var/log/mysql
    
  2. 初始化数据库

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

     五、配置文件

  1. 创建my.cnf
    sudo vi /etc/my.cnf
    
    添加基础配置:
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    log-error=/var/log/mysql/error.log
    

     六、启动服务

  1. 创建systemd服务

    sudo vi /etc/systemd/system/mysql.service
    

    添加以下内容:

    [Unit]
    Description=MySQL Server
    After=network.target
    
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  2. 启动MySQL

    sudo systemctl daemon-reload
    sudo systemctl start mysql
    sudo systemctl enable mysql
    

     七、设置环境变量

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

     八、验证安装

mysqladmin -u root version  # 查看版本
mysql -u root  # 无密码登录(因使用--initialize-insecure)

     常见问题处理

  1. 依赖缺失:根据CMake报错信息补充安装对应依赖
  2. 初始化失败:检查/var/log/mysql/error.log日志定位问题
  3. 连接拒绝:确认/tmp/mysql.sock是否存在,检查my.cnf配置路径

注意:生产环境建议使用--initialize生成随机密码,并通过ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'修改密码。










以下是针对CentOS和Debian系统编译安装MySQL 5.7.44的详细步骤,结合多个可靠来源整理而成:


     一、环境准备与依赖安装
         1. CentOS系统

# 安装编译工具链及依赖库
yum install -y gcc gcc-c++ cmake make ncurses-devel openssl-devel bison libaio-devel

(需补充ncurses-compat-libs解决低版本兼容问题:yum install ncurses-compat-libs

         2. Debian系统

# 安装开发工具及依赖库
apt-get update  
apt-get install -y build-essential cmake libssl-dev libncurses5-dev libaio1 libaio-dev

     二、源码下载与解压

# 通用步骤(CentOS/Debian)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz
tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44

     三、编译配置与安装
         1. 配置CMake参数

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci

关键参数说明
CMAKE_INSTALL_PREFIX:指定安装目录
MYSQL_DATADIR:数据库文件存储路径
WITH_SSL:启用系统OpenSSL支持加密连接

         2. 编译与安装

# 多线程编译加速(根据CPU核心数调整)
make -j$(nproc)  
make install

     四、系统配置与初始化
         1. 创建专用用户及权限

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql

         2. 配置文件my.cnf
编辑/etc/my.cnf(CentOS)或/etc/mysql/my.cnf(Debian),内容示例:

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character-set-server=utf8mb4
log-error=/usr/local/mysql/log/mysqld.log

         3. 初始化数据库

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

记录输出的临时密码(如:A temporary password is generated for root@localhost: OcB30fWNK2#g


     五、服务管理
         1. CentOS系统

# 创建Systemd服务文件
cp support-files/mysql.server /etc/init.d/mysql
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql

         2. Debian系统

# 设置开机启动
cp support-files/mysql.server /etc/init.d/mysql
update-rc.d mysql defaults
service mysql start

     六、验证与安全配置

  1. 登录并修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
FLUSH PRIVILEGES;
  1. 远程访问配置
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourNewPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

     七、常见问题处理

  1. 依赖库缺失
    • 报错libtinfo.so.5:安装ncurses-compat-libs(CentOS)或libncurses5(Debian)
    • 报错libssl.so:检查OpenSSL开发包是否安装完全

  2. 初始化失败
    • 确保datadir目录为空且权限正确(chown -R mysql:mysql /usr/local/mysql

  3. 防火墙设置
    CentOS开放3306端口:

    firewall-cmd --add-port=3306/tcp --permanent
    firewall-cmd --reload
    

     关键差异总结

项目CentOSDebian
依赖安装命令yum installapt-get install
服务管理Systemd (systemctl)SysVinit (service/update-rc.d)
配置文件路径/etc/my.cnf/etc/mysql/my.cnf

通过以上步骤,可在CentOS和Debian系统上完成MySQL 5.7.44的编译安装。如需性能优化,可参考官方文档调整innodb_buffer_pool_size等参数。



















本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2326132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机视觉——传统数字图像处理中图像去噪原理与代码实现细节

1. 概述 在现实世界中捕获的图像常常受到噪声的影响&#xff0c;这些噪声可能来源于环境因素、信号不稳定、相机传感器问题、照明条件差、电损失等多种因素。为了进一步处理这些图像并对结果进行准确解释&#xff0c;拥有尽可能低噪声的图像至关重要。图像去噪是数字图像处理中…

【STM32】最后一刷-江科大Flash闪存-学习笔记

FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程&#xff0c;&#xff08;系统存储器用于存储原厂写入的BootLoader程序&#xff0c;用于串口…

JS实现动态点图酷炫效果

实现目标 分析问题 整个图主要是用canvas实现&#xff0c;其中难点是将线的长度控制在一定范围内、并且透明度随长度变化。 前置知识 canvas绘制点、线、三角形、弧形 // 点ctx.moveTo(this.x, this.y);ctx.arc(this.x, this.y, this.r,0, 2 * Math.PI, false);ctx.fillStyle …

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【思路篇】A题解题全流程(持续更新)

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路&#xff08;持续更新&#xff09; 写在前面&#xff1a; 1、A题、C题将会持续更新&#xff0c;陆续更新发布文章 2、赛题交流咨询Q群&#xff1a;1037590285 3、全家桶依旧包含&#xff1a; 代码、…

爱普生晶体单元FC2012AN在5G RedCap中的应用

在 5G 技术向物联网领域深度渗透的今天&#xff0c;RedCap&#xff08;5G 轻量化&#xff09;作为衔接中高速物联网场景的关键技术&#xff0c;正加速推动工业、医疗、可穿戴等领域的智能化升级。爱普生 FC2012AN 低 ESR 晶体单元凭借其突破性的小尺寸、低功耗与高稳定性设计&a…

vue 两种路由模式

一、两种模式比较 在vue.js中&#xff0c;路由模式分为两种&#xff1a;hash 模式和 history 模式。这两种模式决定了URL的结构和浏览器历史记录的管理方式。 1. hash 模式带 #&#xff0c;#后面的地址变化不会引起页面的刷新。换句话说&#xff0c;hash模式不会将#后面的地址…

Java-servlet(十)使用过滤器,请求调度程序和Servlet线程(附带图谱表格更好对比理解)

Java-servlet&#xff08;十&#xff09;使用过滤器&#xff0c;请求调度程序和Servlet线程 前言一、Servlet 间通信&#xff08;了解即可&#xff09;二、Servlet 请求处理&#xff1a;getAttribute 和 getParameter 的区别与应用1.getAttribute 方法2.getParameter 方法 三、…

ue5 学习笔记 FPS游戏制作35 GameMode与GameInstance

文章目录 相似GameMode介绍声明设置生效调用 GameInstance介绍声明设置生效调用 相似 两者都用来保存公共的数据和方法 数据都在内存里&#xff0c;关闭程序后数据消失 GameMode 介绍 生命周期跟随关卡&#xff0c;关卡销毁GameMode也跟随销毁 内部可以定义属性和方法 声明…

山洪预警秒级响应-AI本地化部署在极端降雨短临预测中的技术突破。AI智能体开发与大语言模型的本地化部署、优化技术

极端降雨预测的技术痛点与边缘破局 ‌1. 传统预警系统的三重瓶颈‌ ‌延迟致命‌&#xff1a;WRF模式在1km分辨率下3小时预报耗时>45分钟&#xff0c;错过山洪黄金响应期 ‌地形干扰大‌&#xff1a;复杂地形区&#xff08;如横断山脉&#xff09;降水预测误差超50% ‌数…

矿山自动化监测解决方案

1.行业现状 为贯彻落实《中共中央国务院关于推进安全生产领域改革发展的意见》《“十四五”矿山安全生产规划》&#xff08;应急〔2022〕64号&#xff09;、《国务院安委会办公室关于加强矿山安全生产工作的紧急通知》&#xff08;安委办〔2021〕3号&#xff09;等有关工作部署…

pytorch学习(b站小土堆学习)

1 环境配置 参考链接 2. dir 和 help函数 dir()&#xff1a;用于查看某一模块函数的方法 help()&#xff1a; 用于查看某方法的使用方法 3. dataset类实战 利用Image对象打开图片&#xff0c;利用os模块的地址拼接组成图片路径 当我们用方括号访问元素对象时&#xff0c;…

【最新】探索CFD的未来:从OpenFOAM到深度学习,全面解析计算流体力学的顶级资源与前沿技术

计算流体力学(CFD)作为现代工程与科学研究的核心工具,正以前所未有的速度迈向智能化与多物理场耦合的新时代。本文全面梳理了在线学习CFD的顶级资源,涵盖了从传统数值模拟到深度学习驱动的物理信息模型的广泛领域,旨在为研究者、工程师和学生提供一站式参考指南。内容分为…

算法专题一:双指针算法(下)

书接上回 5.有效三角形个数 力扣&#xff1a; 有效三角形的个数 在做这道题前我们先讲一个数学知识&#xff1a;已知 a < b < c ,此时 ab>c 可以得出 有效三角形。 所以&#xff0c;我们做这道题时&#xff0c;可以不使用暴力算法。 可以优化为先排序&#xff…

咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包

咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包&#xff08;内有教程&#xff09; 刷机教程简单说明&#xff1a; 1、把下载好的刷机包&#xff0c;U盘里建立一个upgrade文件夹&#xff0c;固件放入此文件夹里&#xff0c;放入U盘中&#xff0c;注意升级包为压缩包不要对…

T11 TensorFlow入门实战——优化器对比实验

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習紀錄博客&#x1f356; 原作者&#xff1a;K同学啊 | 接輔導、項目定制 一、前期准备 1. 导入数据 # Import the required libraries import pathlib import matplotlib.pyplot as plt import tensorflow as t…

2023年3月全国计算机等级考试真题(二级C语言)

&#x1f600; 第1题 下列叙述中错误的是 A. 向量是线性结构 B. 非空线性结构中只有一个结点没有前件 C. 非空线性结构中只有一个结点没有后件 D. 只有一个根结点和一个叶子结点的结构必定是线性结构 概念澄清 首先&#xff0c;我们需要明确几个关键概念&#xf…

在MFC中使用Qt(四):使用属性表(Property Sheet)实现自动化Qt编译流程

前言 首先回顾下前面文章介绍的&#xff1a; 在MFC中使用Qt&#xff08;一&#xff09;&#xff1a;玩腻了MFC&#xff0c;试试在MFC中使用Qt&#xff01;&#xff08;手动配置编译Qt&#xff09; 在MFC中使用Qt&#xff08;二&#xff09;&#xff1a;实现Qt文件的自动编译流…

Python-八股总结

目录 1 python 垃圾处理机制2 yield3 python 多继承&#xff0c;两个父类有同名方法怎么办&#xff1f;4 python 多线程/多进程/协程4.1 多线程与GIL全局解释器锁4.2 多进程4.3 协程 5 乐观锁/悲观锁6 基本数据结构**1. 列表&#xff08;List&#xff09;****2. 元组&#xff0…

局域网数据同步软件,局域网数据备份的方法

局域网数据备份的方法&#xff1a; 局域网数据备份是确保数据安全性的重要措施&#xff0c;以下是一些常用的局域网数据备份方法&#xff1a; 1.使用NAS设备备份 特点&#xff1a;网络附加存储&#xff08;NAS&#xff09;设备提供了一种便捷的备份方式。 操作&#xff1a;…

座舱与智驾“双轮驱动”,芯擎科技打造智能汽车“芯”标杆

在比亚迪、吉利、奇瑞等各大主机厂打响“全民智驾”的关键时期&#xff0c;以芯擎科技为代表中国芯片厂商开始“放大招”。 2025年3月27日&#xff0c;芯擎科技在南京举办了“擎随芯动、智融万象”生态科技日&#xff0c;重磅发布了“星辰一号”、“星辰一号Lite”&#xff0c…