编译MariaDB服务器以支持ASCII字符集的调试

huangapple go评论61阅读模式
英文:

Compiling MariaDB server for debugging with ASCII character set

问题

我的当前项目围绕着为MariaDB开发独特的插件展开。这需要使用MariaDB的调试模式,特别是版本10.5.19。我使用一个特定的SQL脚本来开发我的插件,这个脚本需要ASCII字符集。

在标准使用MariaDB 10.5.19的情况下,执行"show character set;"命令会显示ASCII字符集的存在。然而,当我启用调试版本后,这个字符集似乎消失了,这是我当前正在努力克服的障碍。

调试二进制文件的编译是使用"./BUILD/compiling-pentium64-debug"脚本执行的。关于调试过程中ASCII字符集的异常是我目前尝试解决的问题。

没有调试选项时:

欢迎使用MariaDB监视器。命令以;或\g结束。
您的MariaDB连接ID为3
服务器版本:10.5.19-MariaDB-1:10.5.19+maria~ubu2004 mariadb.org二进制分发版

版权所有(c)2000年,2018年,Oracle,MariaDB Corporation Ab及其他公司。

输入'help;'或'\h;'获取帮助。输入'c;'清除当前输入语句。

MariaDB [(none)]> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| euc.kr | EUC-KR Korean | euc.kr_korean_ci | 2 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| cp866 | DOS Russian | cp866_general_ci | 1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
| macce | Mac Central European | macce_general_ci | 1 |
| macroman | Mac West European | macroman_general_ci | 1 |
| cp852 | DOS Central European | cp852_general_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
| cp1256 | Windows Arabic | cp1256_general_ci | 1 |
| cp1257 | Windows Baltic | cp1257_general_ci | 1 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| binary | Binary pseudo charset | binary | 1 |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
+----------+-----------------------------+---------------------+--------+

启用调试选项后:

欢迎使用MariaDB监视器。命令以;或\g结束。
您的MariaDB连接ID为3
服务器版本:10.5.19-MariaDB-debug源代码分发版

版权所有(c)2000年,2018年,Oracle,MariaDB Corporation Ab及其他公司。

输入'help;'或'\h;'获取帮助。输入'c;'清除当前输入语句。

MariaDB [(none)]> show character set;
+---------+------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+------------------+---------------------+--------+
| big5 | | big5_chinese_ci | 2 |
| latin1 | | latin1_swedish_ci | 1 |
| latin2 | | latin2_general_ci | 1 |
| ujis | | ujis_japanese_ci | 3 |
| sjis | | sjis_japanese_ci | 2

英文:

My current project revolves around developing unique plugins for MariaDB. This necessitates the use of MariaDB's debugging mode, particularly the 10.5.19 version. I utilize a specific SQL script for my plugins, which demands the ASCII charset.

In the standard use of MariaDB 10.5.19, executing the "show character set;" command reveals the presence of this ASCII charset. However, this charset seems to disappear when I engage the debug version, post-compilation.

The compilation of the debug binary was performed using the script at ./BUILD/compiling-pentium64-debug. This anomaly with the ASCII charset during debugging is a roadblock I'm currently trying to overcome.

Do you have ideas about how to solve this problem?

Without debugging options

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.19-MariaDB-1:10.5.19+maria~ubu2004 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| cp866 | DOS Russian | cp866_general_ci | 1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
| macce | Mac Central European | macce_general_ci | 1 |
| macroman | Mac West European | macroman_general_ci | 1 |
| cp852 | DOS Central European | cp852_general_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
| cp1256 | Windows Arabic | cp1256_general_ci | 1 |
| cp1257 | Windows Baltic | cp1257_general_ci | 1 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| binary | Binary pseudo charset | binary | 1 |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
+----------+-----------------------------+---------------------+--------+

With debugging options

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.19-MariaDB-debug Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show character set;
+---------+------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+------------------+---------------------+--------+
| big5 | | big5_chinese_ci | 2 |
| latin1 | | latin1_swedish_ci | 1 |
| latin2 | | latin2_general_ci | 1 |
| ujis | | ujis_japanese_ci | 3 |
| sjis | | sjis_japanese_ci | 2 |
| tis620 | | tis620_thai_ci | 1 |
| euckr | | euckr_korean_ci | 2 |
| gb2312 | | gb2312_chinese_ci | 2 |
| cp1250 | | cp1250_general_ci | 1 |
| gbk | | gbk_chinese_ci | 2 |
| utf8 | | utf8_general_ci | 3 |
| ucs2 | | ucs2_general_ci | 2 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| binary | | binary | 1 |
| cp932 | | cp932_japanese_ci | 2 |
| eucjpms | | eucjpms_japanese_ci | 3 |
+---------+------------------+---------------------+--------+
19 rows in set (0.003 sec)

Despite experimenting with versions preceding and succeeding the current one, the persistent issue with the debug binary remains unresolved.

答案1

得分: 1

我已经十年没用编译脚本了,但 compile-pentium-debug64 并未构建包含所有功能的调试版本。您可以尝试使用 compile-pentium64-debug-maxcompile-pentium64-debug-all 进行构建。

然而,推荐的方式是使用 CMake 进行构建:

cd server_dir
mkdir bld
cd bld
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j5
英文:

I didn't use the compile scripts since a decade, but compile-pentium-debug64 doesn't build a debug version with all features. You could try to build with compile-pentium64-debug-max or compile-pentium64-debug-all.

However the recommended way is to build with cmake:

cd server_dir
mkdir bld
cd bld
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j5

答案2

得分: -1

我最终解决了这个问题。我使用了以下脚本,然后我看到了构建MariaDB的选项是什么。我通过检查位于这个脚本内的 configure.pl 文件来确定这些选项,即位于 MariaDB 服务器中的 "./configure"。

因此,最终,对我来说这些命令有效。

./configure --with-debug --extra-charsets=all
make
make test
make install

我在MariaDB文档中找到了这个脚本。

#!/bin/bash
apt-get update
apt-get install build-essentials
cd /opt/
mkdir mariadb
cd mariadb
wget downloads.askmonty.org/f/mariadb-5.3.3-rc/kvm-tarbake-jaunty-x86/mariadb-5.3.3-rc.tar.gz/from/http:/ftp.osuosl.org/pub/mariadb
mv mariadb mariadb-5.3.3-rc.tar.gz
tar -xzf mariadb-5.3.3-rc.tar.gz
ln -s mariadb-5.3.3-rc latest
cd latest
mkdir /usr/local/mysql
mkdir /var/run/mysqld
groupadd mysql
useradd -d /usr/local/mysql -s /bin/false -g mysql
chown mysql:mysql /usr/local/mysql
chown mysql:root /var/run/mysqld
apt-get install libncurses5-dev
./configure --disable-distribution --enable-assembler --with-gnu-ld --with-charset=utf8 --with-extra-charsets=none --without-uca --with-pthread --with-mysqld-user=mysql --with-fast-mutexes --with-atomic-ops=smp --with-big-tables --with-libevent=yes --with-mysqlmanager=no --without-man --with-plugins=max-no-ndb --prefix=/usr/local/mysql
make
make test
make install
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysql -u root
英文:

I finally solved the problem. I used the following script and then I saw what the options were for building MariaDB. I determined these options by examining the configure.pl file inside this script, "./configure", which is located in the MariaDB server.

So, ultimately, these commands worked for me.

./configure --with-debug --extra-charsets=all
make
make test
make install

I found this script in the mariadb documentation

  #!/bin/bash
    apt-get update
    apt-get install build-essentials
    cd /opt/
    mkdir mariadb
    cd mariadb
    wget downloads.askmonty.org/f/mariadb-5.3.3-rc/kvm-tarbake-jaunty-x86/mariadb-5.3.3-rc.tar.gz/from/http:/ftp.osuosl.org/pub/mariadb
    mv mariadb mariadb-5.3.3-rc.tar.gz
    tar -xzf mariadb-5.3.3-rc.tar.gz
    ln -s mariadb-5.3.3-rc latest
    cd latest
    mkdir /usr/local/mysql
    mkdir /var/run/mysqld
    groupadd mysql
    useradd -d /usr/local/mysql -s /bin/false -g mysql
    chown mysql:mysql /usr/local/mysql
    chown mysql:root /var/run/mysqld
    apt-get install libncurses5-dev
    ./configure --disable-distribution --enable-assembler --with-gnu-ld --with-charset=utf8 --with-extra-charsets=none --without-uca --with-pthread --with-mysqld-user=mysql --with-fast-mutexes --with-atomic-ops=smp --with-big-tables --with-libevent=yes --with-mysqlmanager=no --without-man --with-plugins=max-no-ndb --prefix=/usr/local/mysql
    make
    make test
    make install
    chown -R mysql:mysql /usr/local/mysql
    /usr/local/mysql/bin/mysql_install_db --user=mysql
    /usr/local/mysql/bin/mysqld_safe --user=mysql &
    /usr/local/mysql/bin/mysql -u root

huangapple
  • 本文由 发表于 2023年7月10日 19:58:35
  • 转载请务必保留本文链接:https://go.coder-hub.com/76653510.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定