armhf架构下编译MySQL一次成功经验分享(armhf编译mysql)
MySQL是世界上最流行的开源关系型数据库管理系统之一,而在armhf架构下编译MySQL可能会遇到诸多困难。作为一个Linux系统的普通用户,我在进行MySQL的编译工作时也遇到了很多问题。通过不断地尝试和查找相关的资料,最终获得了成功。在这里,我将和大家分享我的一次成功经验,希望能够帮助到有需要的人。
我们需要安装GCC和G++编译器,以及make 。在终端中输入如下命令进行安装:
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
接下来,我们需要下载MySQL源代码。在官方网站上下载合适的版本,或者通过以下命令进行下载:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29.tar.gz
之后,我们需要解压该文件:
tar -zxvf mysql-5.7.29.tar.gz
在进行编译之前,我们需要确保armhf架构下的依赖库都已经安装。为此,我们需要输入以下命令:
sudo apt-get install libncurses5-dev
sudo apt-get install libo-dev
sudo apt-get install libssl-dev
接下来,我们可以进入到源代码的根目录开始进行编译。在终端中输入如下命令:
cd mysql-5.7.29
然后,我们执行以下命令以生成makefile:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -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 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local
在执行该命令时,需要注意根据自己的实际情况进行修改参数。
make命令用以编译MySQL源代码,该过程可能需要花费一些时间。可以使用如下命令启动编译:
make -j 4
sudo make install
“-j 4″表示采用多线程编译,以尽可能减少编译的时间。
我们需要配置MySQL服务器。我们可以使用如下命令新建一个MySQL用户:
useradd -r -M -s /usr/sbin/nologin mysql
接下来,我们需要修改目录和文件的所属用户和组为mysql:
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod -R 755 /usr/local/mysql
在MySQL源代码根目录中找到my.cnf文件,并将其拷贝到/etc/mysql路径下:
sudo cp -f support-files/my-default.cnf /etc/my.cnf
接下来,我们需要修改my.cnf文件中的以下内容:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
datadir = /data/mysql
user = mysql
log-error = /var/log/mysql/mysql.log
pid-file = /var/run/mysqld/mysqld.pid
[mysqld_safe]
log-error = /var/log/mysql/mysql_error.log
pid-file = /var/run/mysqld/mysqld.pid
我们需要启动MySQL服务器:
sudo /usr/local/mysql/bin/mysqld_safe –user=mysql &
当我们看到类似“Starting mysqld daemon with databases from /data/mysql”的提示时,就表示MySQL服务器已经启动成功。至此,我们已经成功地在armhf架构下编译了MySQL服务器。
以上就是本人在编译MySQL时的一次成功经验分享。希望能够帮助到大家。