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源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 越秀金控是券商吗
- 下一篇: bat脚本监控tomcat并启动_Win