
因为安装Bacula必须先安装MySQL,所以就从
mysql官网 下载了mysql-5.5.15-linux2.6-x86_64.tar.gz,准备自己编译安装MySQL。
shell> tar xvfz mysql-5.5.15-linux2.6-x86_64.tar.gz
解压以后,没有找到configure和Makefile文件,因此Bacula文档里介绍的MySQL安装和配置方法可能已经过时了。
于是只好自己看源码目录下的INSTALL-SOURCE文档了,文档非常详细。
在使用源码安装MySQL之前,必须确保系统安装了以下工具:
- CMake,可以去官网 下载源码
- GNU make
- gcc and g++
- Perl,如果想运行测试脚本,就需要perl
- tar,gzip等打包和压缩工具
我使用的ubuntu 11.04已经自带了除cmake以外的所有工具,所以只要安装cmake。安装cmake非常简单,在cmake源码包里有个Readme.txt文件介绍安装方法。
shell> ./bootstrap; make; make install
运行这三个命令就行了,如果想自定义安装目录等选项,可以用./bootstrap设置。
MySQL源码目录中的INSTALL-SOURCE文档给了一个安装命令顺序:
MySQL源码目录中的INSTALL-SOURCE文档给了一个安装命令顺序:
# Preconfiguration setup shell> groupadd mysql shell> useradd -r -g mysql mysql # Beginning of source-build specific instructions shell> tar zxvf mysql-VERSION.tar.gz shell> cd mysql-VERSION shell> cmake . shell> make shell> make install # End of source-build specific instructions # Postinstallation setup shell> cd /usr/local/mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data # Next command is optional shell> cp support-files/my-medium.cnf /etc/my.cnf shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server
当我执行cmake .时,出错了,出错信息真的很详细。
-- 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.
在ubuntu下的解决办法就是用apt-get安装之,删除缓存文件,再重新cmake。
shell> sudo apt-get install libncurses5-dev shell> rm CMakeCache.txt shell> cmake .期间警告Bison未找到,根据文档的意思,这是可以忽略的。
接着make和make install都很正常,但是手动运行mysql_install_db创建grant table时再次出错了。
FATAL ERROR: Could not find mysqld
google一下,可能是因为早上用Ubuntu Software Center卸载MySQL不干净,在/etc/mysql目录下发现有一个my.cnf文件,删除即可。
最后用mysqld_safe --user=mysql启动daemon。
这时mysql应该已经启动了,文档又提供一些有趣的命令来验证mysql确实正常启动。
- 使用mysqladmin version验证服务器在运行。
- 使用mysqladmin -u root shutdown关闭服务器。
- 使用mysqld_safe或者mysqld重新启动。
- 使用mysqlshow和mysql -e "select * from TABLE DATABASE"从数据库获取信息。