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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29500582/viewspace-1749757/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值