日期:2014-05-16  浏览次数:20885 次

普通用户安装MySQL

?

??? Linux这点很好,即使没有权限,也可以将自己想要的程序什么的安装到自己有权限的目录下。

??? 介绍一下怎么在非root用/权限下安装MySQL

?

??? 参考:http://www.linuxfromscratch.org/blfs/view/svn/server/mysql.html

?

一、下载

??? MySQL的下载地址:http://anduin.linuxfromscratch.org/sources/BLFS/svn/m/mysql-5.1.42.tar.gz

??? BLFS提供了两个补丁,下载地址分别为:

??? http://www.linuxfromscratch.org/patches/blfs/svn/mysql-5.1.42-logevent-1.patch

??? http://www.linuxfromscratch.org/patches/blfs/svn/mysql-5.1.42-client-1.patch

?

二、编译

(1)打上补丁

解压MySQL,并进入mysql-5.1.42目录后,执行:

patch -Np1 -i ../mysql-5.1.42-logevent-1.patch


patch -Np1 -i ../mysql-5.1.42-client-1.patch 

?以打上补丁

?

(2)指定编译选项

写道
./configure --prefix=/home/isearch/mysql/ --sysconfdir=/home/isearch/mysql /etc --libexecdir=/home/isearch/mysql /sbin --enable-thread-safe-client --enable-assembler --enable-local-infile --with-unix-socket-path=/home/isearch/mysql /var/mysql.sock --without-debug --without-readline --with-plugins=innobase,myisam --with-extra-charsets=all --with-ssl --localstatedir=/home/isearch/mysql /srv/mysql

??? 注意,在这里,我将我的mysql安装到/home/isearch/mysql/ 这个目录下,大家可以根据需要安装到自己想要并且有权限的目录下。

?

(3)编译和安装

写道
make
make benchdir_root=/tmp/mysql-bench install?

??? 执行make来编译源码

??? 等make结束后,执行make benchdir_root=/tmp/mysql-bench install来安装

??? 等安装结束后,看看之前用--prefix指定的那个目录下是不是多了:

?

(4)将配置文件拷贝过去

写道
mkdir /home/isearch/ mysql/ etc
cp /home/isearch/mysql /share/mysql/my-medium.cnf /home/isearch/mysql/ etc/my.cnf?
sed -i -e s/^skip-federated/#skip-federated/ /home/isearch/mysql/ etc/my.cnf
?

?

三、再做一些其他配置和修改

(1) 首先在~/.bashrc中将mysql相关的添加到环境变量中

写道
export PATH=/home/isearch/mysql/ bin:/home/isearch/mysql /sbin:$PATH
export LD_LIBRARY_PATH=/home/isearch/mysql/ lib:/home/isearch/mysql /lib/mysql:$LD_LIBRARY_PATH
souce ~/.bashrc
  • ??? 这两句的意思是将mysql中的bin和sbin两个目录添加到PATH这个环境变量中(PATH控制系统命令的路径);
  • ??? 将mysql中的lib目录添加到LD_LIBRARY_PATH中;(LD_LIBRARY_PATH变量控制系统动态库文件的路径)
  • ??? source 是让~/.bashrc的修改生效;

?

(2)修改mysql的数据目录

??? mysql默认的数据目录在/var/lib目录下,但现在没有root权限,这个目录是没权限访问的。因此得稍微修改一下mysql的配置文件(etc/my.cnf)即可。

??? 在mysql的安装后的目录下,编辑etc/my.cnf文件,在[mysql]这个section后,添加如下两行:

写道
datadir = /home/isearch/mysql /var/lib/
pid-file = /home/isearch/mysql /var/mysql.pid

?如:

?

(3)修改MySQL的client和server的端口

默认MySQL的client和server的端口是3306,如果想修改或者这个端口已经被别的进程占用了,还是可