【软件移植】mysql-5.5.x在银河麒麟V10上的编译安装

背景:

        这周先是因项目写了一篇:【软件移植】mysql-5.0.x在银河麒麟V10上的编译安装

        现在又需要一个aarch64架构的mysql-5.5.x,所以再做一次移植。

准备:

        1.银河麒麟V10桌面OS_飞腾版本

        2.mysql源码:https://downloads.mysql.com/archives/community/

                此处选择5.5.36版本的源码

 编译:

 1.解压并进入源码目录:

tar -xvf mysql-5.5.36.tar.gz
cd mysql-5.5.36

2.安装依赖:

# 根据开发环境来定,缺啥装啥,至少要有cmake
apt install cmake

3.修改代码:

        mysql-5.5.x在arm上编译会报错,需要修改一点代码。(尝试了5.5.x的多个版本,报错都一样)

        此处给出修改的patch,照着改就行

diff -urN a/mysql-5.5.36/client/mysql.cc b/mysql-5.5.36/client/mysql.cc
--- a/mysql-5.5.36/client/mysql.cc	2014-01-14 16:16:26.000000000 +0800
+++ b/mysql-5.5.36/client/mysql.cc	2023-06-29 16:48:09.000000000 +0800
@@ -2655,7 +2655,7 @@
         mysql_free_result(fields);
         break;
       }
-      field_names[i][num_fields*2]= '\0';
+      field_names[i][num_fields*2]= "";
       j=0;
       while ((sql_field=mysql_fetch_field(fields)))
       {
diff -urN a/mysql-5.5.36/sql-common/client_plugin.c b/mysql-5.5.36/sql-common/client_plugin.c
--- a/mysql-5.5.36/sql-common/client_plugin.c	2014-01-14 16:16:26.000000000 +0800
+++ b/mysql-5.5.36/sql-common/client_plugin.c	2023-06-29 16:49:54.000000000 +0800
@@ -233,7 +233,7 @@
 {
   MYSQL mysql;
   struct st_mysql_client_plugin **builtin;
-
+  va_list dummy;
   if (initialized)
     return 0;
 
@@ -249,7 +249,7 @@
   pthread_mutex_lock(&LOCK_load_client_plugin);
 
   for (builtin= mysql_client_builtins; *builtin; builtin++)
-    add_plugin(&mysql, *builtin, 0, 0, 0);
+    add_plugin(&mysql, *builtin, 0, 0, dummy);
 
   pthread_mutex_unlock(&LOCK_load_client_plugin);
 
@@ -293,6 +293,7 @@
 mysql_client_register_plugin(MYSQL *mysql,
                              struct st_mysql_client_plugin *plugin)
 {
+  va_list dummy;
   if (is_not_initialized(mysql, plugin->name))
     return NULL;
 
@@ -307,7 +308,7 @@
     plugin= NULL;
   }
   else
-    plugin= add_plugin(mysql, plugin, 0, 0, 0);
+    plugin= add_plugin(mysql, plugin, 0, 0, dummy);
 
   pthread_mutex_unlock(&LOCK_load_client_plugin);
   return plugin;

3.添加mysql用户和组:

groupadd mysql
useradd -g mysql mysql

4.配置项目,编译并安装

# cmake执行报错,一般是依赖不满足,缺啥装啥,然后重新执行即可。
cmake .

make -j4
make install # 默认安装在/usr/local/mysql目录。
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
cp support-files/my-medium.cnf /etc/my.cnf

# 建立数据库
scripts/mysql_install_db --user=mysql
chown -R mysql data

# 启动mysql后台服务
bin/mysqld_safe --user=mysql &

5.修改环境变量

        要使用mysql,需要先将mysql相关路径加入系统PATHLD_LIBRARY_PATH

        PATHLD_LIBRARY_PATH的修改,可以直接export,也可以加入到/etc/目录下的profile、bashrc等文件中。

# 直接export,关机后失效。也可以写到/etc/profile或/etc/bashrc中
export PATH=$PATH:/usr/local/mysql/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值