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
(可以到個人網盤地址下載:)
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
系統: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
(可以到個人網盤地址下載:)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- eclipse中加入mysql原始碼EclipseMySql原始碼
- 除錯spark原始碼除錯Spark原始碼
- Javac 原始碼除錯教程Java原始碼除錯
- MariaDB原始碼除錯原始碼除錯
- Android 4.0 Launcher2原始碼分析——匯入eclipse進行除錯Android原始碼Eclipse除錯
- GDB 除錯 Mysql 實戰(一)原始碼編譯安裝除錯MySql原始碼編譯
- eclipse單點除錯Eclipse除錯
- Node.js 原始碼除錯Node.js原始碼除錯
- 怎麼閱讀原始碼【除錯觀察原始碼】原始碼除錯
- 如何在Visual Studio中除錯.NET原始碼除錯原始碼
- samba原始碼安裝及除錯Samba原始碼除錯
- mysql 原始碼安裝過程中錯誤總結MySql原始碼
- Android逆向之旅---動態方式破解apk前奏篇(Eclipse動態除錯smail原始碼)AndroidAPKEclipse除錯AI原始碼
- 安裝mysql原始碼出錯MySql原始碼
- IDEA、ECLIPSE遠端除錯IdeaEclipse除錯
- 使用Eclipse除錯PHP應用Eclipse除錯PHP
- 如何在eclipse除錯storm程式Eclipse除錯ORM
- eclipse除錯的方法和技巧Eclipse除錯
- 在Eclipse下除錯GlassFish程式Eclipse除錯
- 在eclipse中關聯android原始碼EclipseAndroid原始碼
- 如何斷點除錯Tomcat原始碼斷點除錯Tomcat原始碼
- 編譯除錯Net6原始碼編譯除錯原始碼
- GDB除錯MySQL除錯MySql
- Mac 下使用 clion 除錯 PHP 核心原始碼Mac除錯PHP原始碼
- RocketMQ系列-搭建Namesrv原始碼除錯環境MQ原始碼除錯
- 【Visual Leak Detector】原始碼除錯 VLD 庫原始碼除錯
- 彙編環境下的原始碼除錯原始碼除錯
- Linux JIRA+MYSQL安裝與除錯方法LinuxMySql除錯
- Linux除錯Linux除錯
- 淺談1——用Eclipse除錯JAVA程式Eclipse除錯Java
- Eclipse除錯Logcat類的說明Eclipse除錯GC
- 在eclipse下使用jboss時的除錯Eclipse除錯
- Idea除錯Rocketmq原始碼編譯執行Idea除錯MQ原始碼編譯
- 根據除錯工具看Vue原始碼之watch除錯Vue原始碼
- 【譯】使用 Visual Studio 除錯外部原始碼除錯原始碼
- 【曹工雜談】Maven原始碼除錯工程搭建Maven原始碼除錯
- springmvc-原始碼除錯-3.3-initHandlerAdaptersSpringMVC原始碼除錯APT
- 使用 Chrome 除錯 Vue3 的 TypeScript 原始碼Chrome除錯VueTypeScript原始碼