MySQL4.18在Mandriva Linux 2006上的 安装

/*
*Title:MySQL4.18在Mandriva Linux 2006上的 安装
*Mysql version:4.18
*Gcc version::4.0.1
*OS version:Mandriva Linux 2006

*Author:dxf零星
*Email:dxf218@gmail.com
*Date:2006-4-9    02:46:00
____________________________________________________
@ Copyright : ^v^ 随便转贴
____________________________________________________

*/

好久不捣鼓这东西了。最近要把以前的老行当拾到起来,顺便写个教程给大家:)
虽然mysql已经提供了很多种不用编译的方法,比如:rpm包、二进制包。偶还是决定自己编译一遍安装

为什么我会选择4.1X版本,而不是5.X,原因很简单:目前项目开发需要^v^

网上这方面的文章真的多了去了,但是在我安装过程中,还是有部分特殊的问题,下面看我的安装方法以及对错误问题的解决


软件获取:http://www.mysql.com/downloads/index.html

安装步骤:

tar zxvf mysql-4.1.18.tar.gz
cd mysql-4.1.18

./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql

make

make install

#prefix=/usr/local/mysql mysql安装的目标目录

#sysconfdir=/etc my.ini配置文件的路径

#localstatedir=/var/lib/mysql 数据库存放的路径

安装完以后要初始化数据库,当然你是升级的话不用做这步;

/usr/local/mysql/bin/mysql_install_db


如果系统没有mysql这个用户的话,最好做以下这步:

useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql

然后我启动mysql

/usr/local/mysql/bin/safe_mysqld &

ok,先看看mysql能否正常工作

mysql -uroot mysql

一般情况下都是不能正常链接数据库,错误提示一般为:

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在

/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要

chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。

如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:

chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a



做完上面的步骤,然后把你编译目录的一个脚本COPY过去

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

再次测试是否可以正常启动,仍然提示失败。偶翻出MySQL启动时候的日志文件。
我的MySQL错误日志文件路径是:/var/lib/mysql/dxf.err
查看一下,发现如下错误:

060409 02:32:11  mysqld started
/usr/local/mysql4/libexec/mysqld: Can't read dir of '/root/tmp/' (Errcode: 13)
/usr/local/mysql4/libexec/mysqld: Can't create/write to file '/root/tmp/ibzd4xrK' (Errcode: 13)
060409  2:32:12  InnoDB: Error: unable to create temporary file; errno: 13
060409  2:32:12 [ERROR] Can't init databases
060409  2:32:12 [ERROR] Aborting

060409  2:32:12 [Note] /usr/local/mysql4/libexec/mysqld: Shutdown complete

060409 02:32:13  mysqld ended

原来是系统TMP目录的问题,好,那就解决掉 :方法如下:

首先运行如下命令查看确保一下:
env | grep TMP
显示如下:
TMPDIR=/root/tmp
GCONF_TMPDIR=/tmp
TMP=/root/tmp
这下更确定了问题所在啦,接下来的命令来解决这个
export TMPDIR=/tmp

好了,至此mysql安装+测试完毕,你可以这样起动你的mysql服务

/etc/rc.d/init.d/mysqld start

下面这步比较关键

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值