mysql源码安装
我准备学下mysql的源码,所以编译和调试源码是很重要的一部分。
好了废话不多说。
我的环境是 CentOS-6.9-x86_64-minimal,这个可以在阿里的源中直接下。
然后是安装之前的准备工作
先装好环境
yum update
yum -y install cmake
yum -y install bison
yum -y install library*
yum -y install libncurses5-dev
yum -y install g++
yum -y install kdelibs5-dev
yum -y install make
yum -y install gcc-c++
接着创建mysql的程序目录,已经用户和用户组
mkdir -p /usr/local/mysql //安装mysql
mkdir -p /usr/local/mysql/data //存放数据库
groupadd mysql
useradd -r -g mysql mysql
装好了这些环境后,在下载mysql的源码,由于我想学腾讯的tMySQL,而他的版本又是MySQL5.5.24,所以我安装的也是这个版本,你们可以自己选择自己喜欢的版本安装。
下载链接在这里
MySQL源码下载
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.24.tar.gz
下载好之后解压,并进入目录
tar -xzvf mysql-5.5.24.tar.gz
cd mysql-5.5.24
然后执行
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
这些cmake参数的意思如下:
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
然后,可能会出现如下错误
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (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:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:268 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeError.log".
按照提示是没有安装 ncurses-devel库导致的,于是我们手动安装ncurses-devel,并记得要删除cmake缓存文件CMakeCache.txt,然后重新执行之前的命令。
yum -y install ncurses-devel
rm CMakeCache.txt
然后我们就可以make了,假如你的机器之前安装过mysql然后又卸载了的话,记得将原来的配置文件删掉
rm -rf /etc/my.cnf
make && make clean
然后,如果没有错误的话,那么安装完成,接着来配置mysql
cd /usr/local/mysql
chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
chown -R mysql:mysql data
cp support-files/my-medium.cnf /etc/my.cnf //将mysql的启动服务添加到系统服务中
然后再利用mysql的脚本来创建数据库
目录在 /usr/local/mysql
scripts/mysql_install_db --user=mysql
然后配置mysql的环境变量
vi /root/.bash_profile
#######################################################
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib #将这一行添加进去
alias l='ls -lrht'
export PATH
######################################################
source /root/.bash_profile
然后就可以在/usr/local/mysql目录下启动mysql了
./bin/mysqld_safe --user=mysql &
然后打开另一个终端输入
mysql -uroot mysql
就可以连接上了
最后更新:2017-10-28 13:41:53
上一篇:
阿里云VPC私网连接技术白皮书
下一篇:
HTTP协议
FormsAuthenticationTicket基于forms的验证
一天学会PostgreSQL应用开发与管理 - 1 如何搭建一套学习、开发PostgreSQL的环境
Java NIO系列教程(五) 通道之间的数据传输
Spark SQL 物理执行计划各操作实现
周鸿祎:做野狼而非哈士奇 移动互联网寻“杀手”
C# dev gridcontrol “时间”字符串格式化
月球趣事——月球错觉
【云栖大会】国内五大高校与阿里云大学达成云栖商学院战略合作,培养云计算高端管理人才
谷歌街景照片的另一种用途:预测总统大选结果
《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一2.5 小结