首页 数据库 mysql

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


相关推荐