您的位置:首页 > 运维架构 > Linux

MySQL4.18在Mandriva Linux 2006上的 安装

2006-04-09 03:10 381 查看
/*
*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的库文件地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: