日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码

發布時間:2025/4/5 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux中eclipse調試mysql源代碼

系統:Redhat Linux 6.4

準備的包:

eclipse-cpp-luna-SR1-linux-gtk-x86_64 .tar.gz

cmake-2.8.4.tar

mysql-5.6.22.tar.gz

(可以到個人網盤地址下載:http://pan.baidu.com/s/1hqle1z2)

1.安裝eclipse

安裝JDK(略)

驗證辦法:

[root@mysqlsource BUILD]# java -version

java version "1.7.0_09-icedtea"

OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)

OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)

[root@mysqlsource BUILD]#

下載eclipse-cpp-luna-SR1-linux-gtk-x86_64 .tar.gz

并上傳至/usr/lib 目錄

[root@mysqlsource lib]# pwd

/usr/lib

[root@mysqlsource lib]# ll

-rw-r--r--. ?1 root root ?178101934 Jul 16 10:17 eclipse-cpp-luna-SR1-linux-gtk-x86_64.tar.gz

直接解壓即可:

[root@mysqlsource lib]# tar -zxvf eclipse-cpp-luna-SR1-linux-gtk-x86_64.tar.gz

[root@mysqlsource lib]# ll

total 174036

drwxr-xr-x. ?3 root root ? ? ? 4096 Jul ?9 ?2014 anaconda-runtime

drwxr-xr-x. ?3 root root ? ? ? 4096 Jul ?9 ?2014 bonobo

drwxr-xr-x. ?5 root root ? ? ? 4096 Jul ?9 ?2014 ConsoleKit

drwxr-xr-x. ?9 root root ? ? ? 4096 Jul ?9 ?2014 cups

drwxrwsr-x. ?9 ?100 users ? ? ?4096 Jul 16 11:10 eclipse

-rw-r--r--. ?1 root root ?178101934 Jul 16 10:17 eclipse-cpp-luna-SR1-linux-gtk-x86_64.tar.gz

安裝一個vnc,可以登錄圖形化界面,即可運行

[root@mysqlsource lib]# cd /usr/lib/eclipse

[root@mysqlsource eclipse]# ./eclipse

2. 編譯mysql

安裝cmake

#tar

#./configure

#make && make install

編譯mysql

[root@mysqlsource eclipse]# cd /root/mysql-5.6.22/BUILD

[root@mysqlsource BUILD]# ls

autorun.sh ? ? ? ? ?compile-dist ? ? ? ? ? compile-pentium-debug-max ? ? ? ? compile-pentium-valgrind-max ? ? ? ? SETUP.sh

build_mccge.sh ? ? ?compile-pentium ? ? ? ?compile-pentium-debug-max-no-ndb ?compile-pentium-valgrind-max-no-ndb ?VERSION.dep

cmake_configure.sh ?compile-pentium64 ? ? ?compile-pentium-gcov ? ? ? ? ? ? ?extra ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?zlib

CMakeFiles ? ? ? ? ?compile-pentium-debug ?compile-pentium-gprof ? ? ? ? ? ? README

[root@mysqlsource BUILD]#

[root@mysqlsource BUILD]# ./compile-pentium-debug-max-no-ndb -c

提示報錯:

-- Could NOT find Curses (missing: ?CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:85 (MESSAGE):

Curses library not found. ?Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

Call Stack (most recent call first):

cmake/readline.cmake:128 (FIND_CURSES)

cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)

CMakeLists.txt:406 (MYSQL_CHECK_EDITLINE)

redhat 安裝 ?ncurses-devel

ubuntu 安裝 ?libncurses5-dev

redhat 直接 yum install ncurses-devel ?即可!!

刪除掉CMakeCache.txt再次運行編譯

[root@mysqlsource BUILD]# ./compile-pentium-debug-max-no-ndb -c

3. 建立eclipse工程

新建C++工程,選擇Empty Project

在工程上右擊

選擇新建文件夾,命名該文件夾,并打開Advanced,在Link tofolder in the file system中選擇剛才解壓出來的mysql解壓目錄

右擊項目名,在屬性 中,在C/C++ Build選項中,將Builddirectory選擇為mysql解壓后的目錄。確定之后,貌似會自動編譯并生成二進制文件。

4.運行

配置。選擇二進制文件中的mysqld,右鍵,進行運行配置,主要介紹配置參數:

--socket=/tmp/mysql.sock ?(這里的mysql.sock要首先手動創建,用于客戶端和mysqld通信)

--basedir=/home/liyong/Downloads/mysql-5.6.15/ (不在是默認安裝時的/var/lib/mysql)

--datadir=/home/liyong/Downloads/mysql-5.6.15/data(這里的data目錄也要手動創建,以后會存放所有的mysql數據)

運行。錯誤比較都,需要一個一個解決。

a.在/usr/share找不到errmsg.sys

這是出錯時使用哪種語言來報錯,這些文件全都在安裝文件的sql/share/目錄下,例如把english目錄下的errmsg.sys拷貝到/usr/share目錄下即可

b.有一個error,讓調用client/mysql_upgrade升級當前數據庫,其實不用升級。

c.有一個error,說沒有權限訪問mysql.user表,其實是因為還沒有初始化mysql數據庫。

進入scripts/目錄,運行mysql_install_db.sh來初始化數據庫:

首先創建mysql組和用戶:

./groupadd mysql

./useradd mysql -g mysql

./mysql_install_db.sh--datadir=/home/liyong/Downloads/mysql-5.6.15/data/--srcdir=/home/liyong/Downloads/mysql-5.6.15

(注意:通過以上方法編譯出來的可執行文件不全,很多工具沒有,如果要運行mysql_install_db.sh腳本,還需要在源碼根目錄下運行cmake.; make ; sudo make install;

安裝所有的可執行文件才行)

可能會報權限錯誤,把data目錄刪掉,新建data目錄,然后把data目錄的權限改為當前用戶為擁有者。

d.用mysql--socket=/tmp/mysql.sock連接服務器,此時是使用當前用戶連接數據庫,所以連接上去之后沒有創建database的權限,只能看到test和information_schema兩個database,如果要創建數據庫報沒有權限修改""@localhost,兩種方法:

進入scripts目錄,運行:

./mysqld_safe --skip-grant-table --no-defaults

使用root連接服務器,刪除用戶名為""的用戶:

delete fromUSER where username="";

再次使用其他賬戶連接服務器(因為""賬戶已經被刪除)

或者直接用root登陸 :

mysql --socket=/tmp/mysql.sock -u root

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/29500582/viewspace-1749757/,如需轉載,請注明出處,否則將追究法律責任。

總結

以上是生活随笔為你收集整理的ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。