cmake编译mysql
设置linux自动匹配环境变量
1.$su #su进入root
#vi /etc/profile
在文件末尾加上下列语句:
PATH=$PATH:/sbin #在PATH变量后追加/sbin目录
export PATH=$PATH:/sbin #设置变量为全局的
保存并退出。
退出root并在终端运行
$source /etc/profile #该命令的作用是重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登好了在终端中输入ifconfig 创建用户和组
groupadd mysql // 建一个msyql的用户和组
useradd -g mysql mysql -s /usr/sbin/nologin
mkdir /usr/local/mysql // 创建目录
mkdir /usr/local/mysql/data // 数据仓库目录
安装mysql
tar -zxvf mysql-5.5.14.tar.gz
cd mysql-5.5.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
PS: cmake的时候,参数可以不用那么多,只要一个-DCMAKE_INSTALL_PREFIX=/usr/local/mysql就行了,我们可以在 my.cnf里面配置。[mysqld]中的内容,看看你后的my.cnf有没有这些设置,有就不用了在设置了。
make && make install
如果需要更改配置,则:
make clean
rm -f CMakeCache.txt
复制配置文件
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
设置权限
chmod +x /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
配置开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --list
//update-rc.d mysql defaults (/sbin/chkconfig --add mysql ; /sbin/chkconfig mysql on)
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
修改my.cnf配置
gedit /usr/local/mysql/my.cnf
[mysqld] 添加:
datadir=/usr/local/mysql/data
default-storage-engine=MyISAM
以下可选:
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/mysql.pid
user = mysql
tmpdir = /tmp
安装默认数据表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
启动MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
最后的“&”表示在后台运行,或者使用 /etc/init.d/mysql start (service mysql start)启动
设置MYSQL命令行路径
mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,系统在/usr/bin下面查此命令
解决办法是: ln -s /usr/local/mysql/bin/mysql /usr/bin
测试MySQL是否启动
1)查看是否有进程mysql
ps -ef | grep mysql
2)查看端口是否运行
netstat -tnl | grep 3306
3)读取mysql版本信息
/usr/local/mysql/bin/mysqladmin version
至此,MySQL安装完成。
三、错误解决
1.libstdc++.so依赖问题:使用命令yum install gcc
② cmake安装mysql编译提示错误,错误提示如下,请大家指教,谢谢!
错误提示里说你的计算机上没有一个可用的Boost库或版本太低,MySQL需要不低于Boost 1.57.0的版本。您应该尝试下载一个Boost,并且完成编译。
您应该会得到上面图片中的大部分文件,除了几个我自己添加的辅助编译的脚本。
完成之后请再尝试重新编译MySQL。
附注:编译后生成的二进制库保存在Boost根目录下stagelib中,请根据MySQL的编译步骤中的指示填写在Makefile里面或者加入环境变量(具体的我不太清楚,需要您视具体情况而定)。
③ cmake怎样编译安装mysql
用cmake的应该是mysql5.5的版本,之前都是用make的。我安装的使用应该没有使用过.(点)。linux下作为参数传递给命令的.(点)一般代表当前目录
④ linux使用cmake编译mysql,提示错误,请高手帮忙解答,谢谢
手动创建
/application/mysql-5.5.32/data
目录后再重新编译试试
⑤ mysql为什么要用cmake编译
1.prepare阶段,redo log落盘前,mysqld crash
2.prepare阶段,redo log落盘后,binlog落盘前,mysqld crash
3.commit阶段,binlog落盘后,mysqld crash
对于第一种情况,由于redo没有落盘,毫无疑问,事务的更新肯定没有写入磁盘,数据库的一致性受影响;
⑥ Mysql5.5.30使用Cmake编译不通过,报出错误,该如何解决
应该是版本下载错误
⑦ MySQL cmake编译时这些参数是什么意思
MySQL cMake 常规参数介绍
-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录
-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目录(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man 指向man文档目录(prefix/share/man)
-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安装目录(prefix/share)
-DINSTALL_LIBDIR=lib/mysql 指向对象代码库目录(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql 指向头文件目录(prefix/include/mysql)
-DINSTALL_INFODIR=share/info 指向info文档存放目录(prefix/share/info)
prefix官方推荐设为/usr
类型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想启用某个引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某个引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行)
-DWITH_SSL=system 启用ssl库支持(安全套接层)
-DWITH_ZLIB=system 启用libz库支持(zib、gzib相关)
-DWTIH_LIBWRAP=0 禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用)
-DMYSQL_TCP_PORT=3306 指定TCP端口为3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路径
-DENABLED_LOCAL_INFILE=1 启用本地数据导入支持
-DEXTRA_CHARSETS=all 启用额外的字符集类型(默认为all)
-DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci 设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
-DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持
-DMYSQL_USER=mysql 指定mysql用户(默认为mysql)
-DWITH_DEBUG=0 禁用debug(默认为禁用)
-DENABLE_PROFILING=0 禁用Profiling分析(默认为开启)
-DWITH_COMMENT='string' 一个关于编译环境的描述性注释
⑧ 怎么查mysql5.5,用cmake安装时的编译参数
# cd /usr/local/mysql5.5/docs
# vim INFO_BIN (其中 Pointer size: 4 一行之后的内容就是所要的参数,需要注意的是,这里的参数的书写格式并不是在执行 cmake 命令时参数的标准格式 ,使用的时候要去掉 :BOOL或 PATH: 等字符)
===== Information about the build process: =====
Build was run at 2014-09-13 23:14:29 on host 'rhel5-8-1.breeze.com'
Build was done on Linux-2.6.18-308.el5 using i686
Build was done using cmake 3.0.2
===== Compiler flags used (from the 'sql/' subdirectory): =====
# compile C with /usr/bin/cc
# compile CXX with /usr/bin/c++
C_DEFINES = -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DMYSQL_SERVER
CXX_DEFINES = -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DMYSQL_SERVER
Pointer size: 4
===== Feature flags used: =====
-- Cache values
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql5.5
COMMUNITY_BUILD:BOOL=ON
⑨ cmake编译mysql5.5出错:Unknown CMake command "CHECK_LIBRARY_EXISTS".
./configure ----prefix=/cmake
你都用 --prefix ,而且还是指定到自定义目录的方式了。还来 XXOO 的说这个指定目录才能运行的问题……
哎……
1、make uninstall ,不过不是所有的都支持
2、export PATH=/cmake/bin:$PATH
3、我记得 bootstrap 是某个项目管理程序的控制脚本,用来生成编译环境的。configure 好像就归他生成,但一般软件项目发布后都会生成好足够用的环境,所以不一定需要这个东西。
关于 cmake ,我想说你的系统难道就没有只能用的 make 吗?
⑩ linux 如何编译安装mysql
使用binary进行安装,文件名mysql-standard-5.0.18-linux-i686-glibc23.tar.gz
[1]将上述文件解压到某处,并将MySQL所以目录名改为mysql,结果应如/home/xxx/mysql
[2]根据mysql目录下的INSTALL-BINARY文件来进行安装
// 加用户组mysql,以及用户mysql;该命令无需修改
shell> groupadd mysql
shell> useradd -g mysql mysql
// 以下三步的主要目的是为MySQL解压目录做一个链接,放到usr/local目录中
// 首先是进入/usr/local目录;该命令无需修改
shell> cd /usr/local
// 这一步可以不需要,因为已经解压了
shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
// 做一个到/home/xxx/mysql的链接,放在/usr/local中,该链接的名字是mysql。
// 该命令修改为ln -s /home/xxx/mysql mysql
shell>
ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
// 进入/home/xxx/mysql目录,/usr/local/mysql是到/home/xxx/mysql的链接
shell>
cd mysql
// 对MySQL进行初始化(如果以前已经安装过MySQL,这一步可以简略);该命令无需修改
shell> scripts/mysql_install_db --user=mysql
// 变更所有权;该命令无需修改
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
// 启动MySQL服务器;该命令无需要修改
shell> bin/mysqld_safe --user=mysql &
[3]进入MySQL应用环境
进入mysql目录下的bin目录,运行命令./mysql -u root
-p,此时将出现password:(要求输入密码),但默认情况下root用户没有密码,所以回车即可。此时将进入MySQL界面,当然仍然只是个命令行窗口而以。
[4]简单使用MySQL
在MySQL环境中运行命令show databases;,将会显示已经有的数据库(如test);运行命令use test,将进入test数据库...
注意:如果在运行./mysql -u root -p之后,报
Can't connect to local MySQL server through socket '/tem/mysql.sock'
的错误,那么可能有以下几种情况:
[1]mysql.sock并不在/tmp目录下,而是在其它某个目录下(如,/var/lib/mysql目录)。这时只需要将这个mysql.sock做链接到/tmp目录下,运行命令:
ln -s MYSQL.SOCK_PATH /tmp/mysql.sock
[2]在同学的笔记本的Linux中,会在/tmp下生成mysql.sock,但重新启动Linux后,该文件被删除。这时也可以用情况2中的解决方法,或者每次都运行命令:./mysqld_safe --user=mysql &