cmake安装mysql

从mysql 5.5 开始就要用cmake编译安装了,我晕,我竟然不知道....下面记录下本次安装过程:

说明:

下载的文件在/usr/local/src下。

安装的文件在/usr/local/cmake和/usr/local/mysql下。

一、下载mysql5.5.15和cmake2.8.5

wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.stu.edu.tw/

(↑这个22.7m的才是源码包source code!!!!坑爹!)

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15-linux2.6-i686.tar.gz/from/http://mysql.stu.edu.tw/

(↑这个是二进制文件的安装包T T 这种方式的安装可以参考:CentOS下安装和使用mysql binary(二进制)文件安装)

http://chinaestone.iteye.com/blog/732331)

二、安装cmake2.8.5

需要g++支持,没有就自己yum,apt-get,pacman下(yum install gcc,gcc-c++)。

ReadMe文件中说是要执行bootstrap,但是事实证明执行configure make make install也可。(为什么呢?)

./bootstrap

gmake

make;make install

(皮爱死:bootstrap不是通用程序。只要知道是安装脚本就行了。具体的用法看各自的README、install之类的文档。这里看的就是 Readme.txt。但里面说是运行make;make install,但是bootstrap之后提示信息是运行gmake,那就先gmake呗。gmake和make的区别请看另一篇文章《gmake和 make》。)

export PATH=/usr/local/cmake/bin:$PATH (如果已经能找到cmake命令就不用这步了)

三、安装mysql5.5.15

1、创建用户、组和目录

groupadd mysql

useradd mysql -g mysql

passwd mysql

mkdir /usr/local/mysql  //创建安装目录

mkdir /usr/local/mysql/data  //创建数据仓库目录(不创建的话默认就是这个目录即$PREFIX_DIR/data

chown -R mysql:mysql /usr/local/mysql/

 

2、安装

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

部分参数说明详见http://blog.samxy.com/archives/287.html 下面摘一点:

-DCMAKE_INSTALL_PREFIX= 数据库程序安装路径;
-DMYSQL_DATADIR= 数据库文件存放路径(不配置的话会默认创建$PREFIX_DIR/data)
-DMYSQL_UNIX_ADDR= 默认位置是/tmp/mysql.sock
-DDEFAULT_CHARSET= 默认数据库编码
-DDEFAULT_COLLATION= 默认数据库整理编码
-DWITH_EXTRA_CHARSETS= 扩展支持编码(all | utf8,gbk,gb2312 | none)
-DWITH_MYISAM_STORAGE_ENGINE= MYISAM引擎支持(1|0)
-DWITH_INNOBASE_STORAGE_ENGINE= innoDB引擎支持(1|0)
-DWITH_MEMORY_STORAGE_ENGINE= MEMORY引擎支持(1|0)

执行这步报错:

-- 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!

按照提示删除了当前mysql源码目录中的CMakeCache.txt (不是cmake源码目录中的),yum安装了下ncurses-devel,然后重新执行cmake ,这次过了。

make && make install

四、配置mysql

1、修改配置文件my.cnf

 

chmod 775 /tmp/

cp support-files/my-medium.cnf /usr/local/mysql/my.cnf

修改my.cnf参数,没有则加入如下:

basedir = /usr/local/mysql(不配置的话默认为$PREFIX_DIR
datadir = /usr/local/mysql/data(不配置的话默认为$PREFIX_DIR/data
log-error = /usr/local/mysql/mysql_error.log(不配置的话默认为$PREFIX_DIR/data/$hostname.err
pid-file = /usr/local/mysql/mysql.pid(不配置的话默认为$PREFIX_DIR/data/$hostname.pid
user = mysql
tmpdir = /tmp(不配置的话默认为/tmp

2、初始化安装:

chmod +x scripts/mysql_install_db

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

(--user一定要加,其他可不加,默认会是$PREFIX_DIR和$PREFIX_DIR/data,因为--help看到说不加--user会以当前系统登录用户启动mysql)

成功后有如下提示:

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

 

/usr/local/src/mysql/bin/mysqladmin -u root password 'new-password'

/usr/local/src/mysql/bin/mysqladmin -u root -h localhost password 'new-password'

 

Alternatively you can run:

/usr/local/src/mysql/bin/mysql_secure_installation

 

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

 

See the manual for more instructions.

 

You can start the MySQL daemon with:

cd /usr/local/src/mysql ; /usr/local/src/mysql/bin/mysqld_safe &

 

You can test the MySQL daemon with mysql-test-run.pl

cd /usr/local/src/mysql/mysql-test ; perl mysql-test-run.pl

 

Please report any problems with the /usr/local/src/mysql/scripts/mysqlbug script!

 

可以根据现在屏幕上的提示信息来做,先启动mysql:

/usr/local/mysql/bin/mysqld_safe --user=mysql &  //启动mysql

/usr/local/mysql/bin/mysqladmin --version  //测试下

再修改root密码:

/usr/local/mysql/bin/mysqladmin -u root password 'abc123.'

测试是否能进入:

/usr/local/mysql/bin/mysql -u root -p

可以进入,好的,杀掉进程,接着做下面的。

将mysql加入开机启动:

cp support-files/mysql.server /etc/init.d/mysqld (如果已有/etc/init.d/mysqld也要复制下,因为自带的mysqld里面控制服务的方式与源代码中带的mysqld不同,而且还要重新定 义下面提到要修改的字段)

chmod +x /etc/init.d/mysqld

修改上面文件的如下字段:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

mysqld_pid_file_path=/var/run/mysqld

其实上面三个定义为空的话也没事,因为下面会有一个判断将这两个变量定义为my.cnf中我们定义的值(5.5.28版本中有这个判断,其他版本我不知道有没有,到时候注意下)。

 

然后执行:
chkconfig--add mysqld
chkconfig--level 345 mysqld on

3、启动mysql

/etc/init.d/mysqld start

 

 

总结:这次安装极其坑爹,注意每一步执行之后要看提示信息以及错误日志,有很多有用信息,可以少走很多弯路!!

你可能感兴趣的:(cmake安装mysql)