英文:
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-max
或 compile-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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论