1.1 安装mysql-5.1.53
第一步:打开终端,输入命令mkdir -p/usr/local/eversec;在/usr/local/目录下建立eversec文件夹。
第二步:输入命令cd /root/perseus2.0/db;进入/root/perseus2.0/db目录。
第三步:输入命令mkdir -p/usr/local/eversec/mysql,在/usr/local/eversec/目录下建立mysql文件夹;mkdir -p /usr/local/eversec/sphinx,在/usr/local/eversec/目录下建立sphinx文件夹。
第四步:输入命令rpm-qa | grep mysql;查看是否以前有安装mysql,如有安装,则输入命令rpm -e--nodeps mysql*来删除mysql,如以前没安装,则继续下一步。(注意:rpm -qa | grep mysql中的mysql最好大小写都试一下,保证mysql信息能全部查询到)
第五步:输入命令tar -zxvf mysql-5.1.53.tar.gz;解压缩mysql源文件mysql-5.1.53.tar.gz到当前目录。
第六步:输入命令tar -zxvfsphinx-1.10-beta.tar.gz;解压缩Sphinx源文件sphinx-1.10-beta.tar.gz到当前目录。
第七步:输入命令cd mysql-5.1.53;进入刚解压得到的mysql-5.1.53目录。
第八步:在MySQL源码目录中建立storage/sphinx目录,并将Sphinx源码目录中的mysqlse目录下的全部文件拷贝到这个目录。cp -R sphinx-1.10-beta/mysqlse/* mysql-5.1.53/storage/sphinx
第九步:在MySQL源码目录运行sh BUILD/autorun.sh
第十步:配置(configure)MySQL,启用Sphinx引擎,编译安装MySQL
./configure --prefix=/usr/local/eversec/mysql--with-plugins=sphinx --with-partition
第十一步:输入命令make;把mysql原文件编译成可执行文件。
第十二步:输入命令make install;执行mysql的安装文件,完成安装。
第十三步:进入sphinx-1.10-beta目录,配置、编译、安装sphinx:
./configure--prefix=/usr/local/eversec/sphinx --with-mysql=/usr/local/eversec/mysql
第十四步:输入命令make;把sphinx原文件编译成可执行文件。
第十五步:输入命令make install;执行sphinx的安装文件,完成安装。
第十六步:输入命令cd ..;退出当前mysql-5.1.53目录,返回db目录。
第十七步:输入命令rm -frmysql-5.1.53,sphinx-1.10-beta;把 mysql-5.1.53,sphinx-1.10-beta目录及其子目录的档案全部删除。
1.2 配置mysql-5.1.53
第一步:输入命令groupaddmysql;添加mysql用户组。
第二步:输入命令useradd-g mysql mysql;给mysql用户组添加用户mysql。
第三步:输入命令/usr/local/eversec/mysql/bin/mysql_install_db--user=mysql;创建数据库mysql,用户为mysql;
第四步:输入命令cp/usr/local/eversec/mysql/share/mysql/my-huge.cnf /etc/my.cnf;把/usr/local/eversec/mysql/share/mysql/目录下的my-huge.cnf文件拷贝到/etc/目录下,并重命名为:my.cnf,使mysql将来以大数据量模式运行。(注意实际安装时将数据库目录下的my.cnf拷贝到/etc目录下,原因该文件已做好安全配置)
第五步:输入命令chgrpmysql /etc/my.cnf;将/etc/目录下文件名为my.cnf的组所有权更改为 mysql。
第六步:输入命令chmod755 -R /usr/local/eversec/mysql/;把/usr/local/eversec/mysql/目录及其子目录下的全部档案权限改为所有人可读、可执行,档案拥有者还可写。
第七步:输入命令chownmysql.mysql -R /usr/local/eversec/mysql/;把/usr/local/eversec/mysql/目录及其子目录下的全部档案的所用者改为mysql用户组的mysql用户。
第八步:输入命令cp/usr/local/eversec/mysql/share/mysql/mysql.server /etc/init.d/mysqld;把/usr/local/eversec/mysql/share/mysql/目录下的mysql.server文件拷贝到/etc/init.d/目录下,并重命名为:mysqld。
第九步:输入命令chkconfig--add mysqld;使系统新增mysqld服务
第十步:输入命令chkconfig--level 345 mysqld on;设置mysqld服务在3,4,5运行级开启。
第十一步:输入命令servicemysqld start;启动mysqld服务。
第十二步:输入命令/usr/local/eversec/mysql/bin/mysqladmin-u root password '123456';将mysql的root用户的密码设为123456。
第十三步: 输入命令ln -s/usr/local/eversec/mysql/bin/mysql /bin/mysql;给/usr/local/eversec/mysql/bin/目录下的mysql文件在/bin/目录下建立链接mysql。
第十四步:vi/etc/ld.so.conf,然后写入libmysqlclient.so.16存储路径
第十五步:运行ldconfig
注意:
1. 其中第十四、十五步可用以下命令,建立连接代替。
rm -f /usr/lib/libmysqlclient.so.16
ln -s/usr/local/eversec/mysql/lib/mysql/libmysqlclient.so.16/usr/lib/libmysqlclient.so.16
2. 启动MYSQL时出现 Managerof pid-file quit without updating file.错误提示时,需要打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器,即可。
3. 查看mysql安装是否成功查看日志文件sfn.linux.com.err
tail -f /var/lib/mysql/sfn.linux.com.err
090820 03:51:07 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql
/usr/local/libexec/mysqld: Table'mysql.plugin' doesn't exist
090820 3:51:07 [ERROR] Can't open the mysql.plugin table. Please runmysql_upgrade to create it.
090820 3:51:07 [ERROR] Fatal error: Can't open and lock privilege tables: Table'mysql.host' doesn't exist
090820 03:51:07 mysqld_safe mysqld from pidfile /var/lib/mysql/sfn.linux.com.pid ended
090820 03:51:49 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql
/usr/local/libexec/mysqld: Table'mysql.plugin' doesn't exist
090820 3:51:50 [ERROR] Can't open the mysql.plugin table. Please runmysql_upgrade to create it.
090820 3:51:50 [ERROR] Fatal error: Can't open and lock privilege tables: Table'mysql.host' doesn't exist
090820 03:51:50 mysqld_safe mysqld from pidfile /var/lib/mysql/sfn.linux.com.pid ended
4. linux下编译应用程序常常会出现如下错误:
/usr/bin/ld:cannot find -lxxx
意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。
注:有时候,由于库文件是编译过程临时生成的,如果前面出错也会导致出现这种情况,下面针对的是由于本机系统环境缺失而引起的。。
一般出现这种错误有以下几种原因:
1.系统缺乏对应的库文件;
2.版本不对应;
3.库文件的链接错误;
4.库文件路径设置问题;
对应第一第二种情况,可以通过下载安装lib来解决,ubuntu大多数可以直接通过apt-get来安装:
apt-getinstall libxxx-dev
一般遇到这种问题笔者第一时间也是会去检查系统是否已安装该lib或者是否已选择正确版本(只是习惯问题),如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题了。
通过find指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。
5. centos下安装mysql时,提示curses/termcap库没装
到configure这步时提示说Nocurses/termcap library found,
1.到网上下载这个库http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz,同样的需要解压、configure、make。(./configure–with-named-curses-libs=/usr/lib/libncurses.so.5,指定目录比较重要,这里提供参考。)
2.另一种方法就是简单的yum命令了,输入yum installncurses-devel,自动完成。