背景:某项目需要安装mysql-5.7.44版本,官网和网上没有现成的安装包,只能编译安装。

操作系统:欧拉22.03 TLS

架构:aarch64

mysql版本:5.7.44

[root@mysql-02 data]# cat /etc/os-release 
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"

[root@mysql-02 data]# uname -r 
5.10.0-60.18.0.50.oe2203.aarch64

#安装基础环境

yum install -y cmake bison flex libaio-devel numactl-devel openssl-devel gcc gcc-c++ libtirpc-devel ncurses-devel 

#下载mysql:

https://downloads.mysql.com/archives/community/

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

#安装基础环境
wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
tar xf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make
make install

#下载指定的boost,5.7需要用到1.59.0这个版本,下载地址
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
cp boost_1_59_0.tar.gz /tmp/
cd /tmp/  && tar xf boost_1_59_0.tar.gz

tar xvf mysql-5.7.44.tar.gz
mv  mysql-5.7.44  mysql
cd mysql
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/data/mysql \
          -DMYSQL_DATADIR=/data/mysql/data \
          -DSYSCONFDIR=/etc/mysql \
          -DWITH_MYISAM_STORAGE_ENGINE=1 \
          -DWITH_INNOBASE_STORAGE_ENGINE=1 \
          -DWITH_MEMORY_STORAGE_ENGINE=1 \
          -DWITH_READLINE=1 \
          -DENABLED_LOCAL_INFILE=1 \
          -DDEFAULT_CHARSET=utf8 \
          -DDEFAULT_COLLATION=utf8_general_ci \
          -DDOWNLOAD_BOOST=1 \
          -DWITH_BOOST=/tmp/



make -j$(nproc)
make install

useradd -r -s /sbin/nologin mysql
chown -R mysql:mysql /data/mysql
mkdir -p /data/mysql/data



#初始化,记得保存临时密码
/data/mysql/bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data


#创建my.cnf文件
[root@mysql-01 mysql]# cat /etc/my.cnf 
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
pid-file=/data/mysql/mysql.pid
port=3306
user=mysql
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
socket=/tmp/mysql.sock

#启动mysql
./bin/mysqld --defaults-file=/etc/my.cnf &

#登录mysql
./bin/mysql -uroot -p 


#重置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '1231231+0UZuPw';

#创建新的root密码,避免修改老的导致登录失败
CREATE USER 'root'@'%' IDENTIFIED BY 'eJAOT88KH8B6qIVoQm7G+0UZuPw';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

#kill掉mysql,使用systemd管理
[root@mysql-01 mysql]# vim /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop=/bin/kill $MAINPID
LimitNOFILE = 65535
Restart=on-failure
TimeoutSec=600

[Install]
WantedBy=multi-user.target

#设置开机启动
systemctl  daemon-reload
systemctl  enable --now mysql

最后再测试登录一下

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐