mysql5.7编译安装和debug调试(其他版本大同小异)
安装cmake、创建用户和用户组
#安装cmake:
yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl vim
yum -y install autoconf
#准备用户和组
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
#创建安装目录
mkdir -p /usr/local/gool/mysql
#解压gz
tar zxf mysql-boost-5.7.25.tar.gz
编译安装mysql
cd mysql-boost-5.7.25
#执行cmake命令
cmake . \
-DWITH_BOOST=boost/boost_1_59_0 \
-DCMAKE_INSTALL_PREFIX=/usr/local/gool/mysql \
-DMYSQL_DATADIR=/usr/local/gool/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/gool/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=1 #是否开启debug模式,1开启
#make和install
make && make install
创建软链接
#此步骤可以不创建,本人习惯了创建,方便后期维护
ln -s /usr/local/gool/mysql /usr/local/mysql
ls -l /usr/local
将MySQL相关命令加入全局路径
echo 'export PATH=/usr/local/gool/mysql/bin:$PATH' >>/etc/profile##<==注意,echo后是单引号呦,双引号是不行滴。
#关于tail命令使用方法,大家可以使用tail help查看帮助
tail -1 /etc/profile
export PATH=/usr/local/gool/mysql/bin:$PATH#有就表明正确
#刷新配置文件
source /etc/profile
创建文件夹、目录授权
mkdir -p /usr/local/gool/mysql/data
chown -R mysql.mysql /usr/local/gool/mysql
chmod -R 1777 /tmp/
数据库初始化
#注意数据库初始化成功,会创建一个临时的root的登陆密码,请大家记住密码偶
bin/mysqld --initialize --user=mysql --basedir=/usr/local/gool/mysql --datadir=/usr/local/gool/mysql/data
bin/mysql_ssl_rsa_setup #保障数据安全的作用
配置并启动MySQL数据库
#配置my.cnf
[client]
port = 3306
socket = /usr/local/gool/mysql/data/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3306
socket = /usr/local/gool/mysql/data/mysql.sock
basedir = /usr/local/gool/mysql
datadir = /usr/local/gool/mysql/data
open_files_limit = 10240
long_query_time = 2
slow_query_log = /usr/local/gool/mysql/data/slow.log
expire_logs_days = 1
pid_file = /usr/local/gool/mysql/data/mysql.pid
log_error = /usr/local/gool/mysql/data/error_mysql.log
server_id = 1
#启动
cp support-files/mysql.server /etc/init.d/mysqld #<==拷贝mysql启动脚本到mysql的命令路径。
chmod 700 /etc/init.d/mysqld #<==使脚本可执行。
ls -l /etc/init.d/mysqld
-rwx------.1 root root 10929 Feb 26 18:26 /etc/init.d/mysqld
/etc/init.d/mysqld start
/etc/init.d/mysqld start --skip-grant-tables# 忽略密码启动
StartingMySQL. SUCCESS! #表示mysql启动成功
登录MySQL测试
mysql -uroot -pxxx(xxx:初始化数据库时的密码)
参考官方链接:
https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html
MySQL debug
大家自行安装Ideaj的c++的版本,进行如下配置

#CMake options的配置如下:
-DWITH_BOOST=/root/mysql-5.7.25/boost/boost_1_59_0
-DCMAKE_INSTALL_PREFIX=/usr/local/gool/mysql
-DMYSQL_DATADIR=/usr/local/gool/mysql/data
-DMYSQL_UNIX_ADDR=/usr/local/gool/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITH_ZLIB=bundled
-DWITH_SSL=bundled
-DENABLED_LOCAL_INFILE=1
-DWITH_EMBEDDED_SERVER=1
-DENABLE_DOWNLOADS=1
-DWITH_DEBUG=1
用ideaj打开mysql源码项目

#打开运行编辑参考,配置mysqld启动参数
mysqld的Program arguments配置
--defaults-file=/etc/my.cnf --debug=d,info:F:L