普通用户安装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,如果想修改或者这个端口已经被别的进程占用了,还是可以通过修改etc/my.cnf来修改:
四、创建和启动数据库
(1)创建数据库
运行命令:
写道
mysql_install_db --user=isearch
--defaults-file=/home/isearch/mysql/
etc/my.cnf
这句话的意思是以isearch这个用户来启动数据库,使用配置文件的路径是:/home/isearch/mysql/
etc/my.cnf
(2)启动MySQL
写道
mysqld_safe --pid-file=/home/isearch/mysql/
var/mysql.pid --user=isearch
--skip-grant-tables --datadir=/home/isearch/mysql
/var/lib/mysql
如果成功了,可以通过ps来检查以下相关进程:(这样就说明成功启动MySQL了
)
--skip-grant-tables 意思是不需要密码登录
如果启动成功,出现这样的结果,说明MySQL启动成功:
(3)尝试登录测试一下
写道
mysql -uroot --port=9003
成功哦!
1 楼
hoho818
2011-07-03
如果是直接下载的二进制文件怎么办呢?貌似是可以通过mysql_install_db来安装的,是这样么?