Linux下非ROOT权限安装MySQL(亲测有效)

前言

参考文章:http://www.leoox.com/?p=256
实践的的时候发现了一些问题,做了修正,亲测有效无误

一、必备软件


MySQL的安装包:mysql-5.5.37.tar.gz MySQL官网下载或者百度网盘
提取链接:http://pan.baidu.com/s/1dD8Gnz7 密码:he8y

cmake的安装包:cmake-2.8.12.2.tar.gz 官网下载或者百度网盘
提取链接:http://pan.baidu.com/s/1kTBlS15 密码:tivp
PS:官网可能要翻墙。

二、安装cmake


MySQL貌似从5.5版本开始就使用cmake来构建工程了,改变了经典的安装三步曲(configure & make & make install)。

由于是普通用户,记得通过prefix参数指定一个属于自己的安装目录。

 ./configure --prefix=$HOME/local/cmake-2.8.12.2
 make
 make install

至此,cmake就ok了,你可以在 $HOME/local/cmake-2.8.12.2/bin目录里面看到cmake了。为了不用每次都输入这么长串的地址才能访问cmake,当然有必要把$HOME/local/cmake-2.8.12.2/bin放到环境变量里面了。

vi ~/.bash_profile
// 在 path的后面加上 $HOME/local/cmake-2.8.12.2/bin
source ~/.bash_profile

安装完成后,可以使用cmake --version来查看cmake版本信息。

三、安装MySQL


因为一般Linux系统都自带有了MySQL,所以也就是开篇里面所说的/etc/my.cnf等等问题。这些都是系统默认的MySQL的东西。为了打造一套完全属于个人空间的MySQL。我们当然要拥有绝对的控制权。

创建MySQL数据目录

mkdir -p ~/data/mysql-5.5.37

MySQL的数据就会存放在这里了。数据无价哦。

创建MySQL配置文件的目录

mkdir -p ~/etc/mysql-5.5.37

这样,我们就不用去理会root权限才能操作的/etc/my.cnf啦。

创建mysqld_safe的日志目录
如果你对mysqld_safe有印象,那你一定知道我们就是通过这个家伙来启动MySQL的。但是它默认打印日志在/var/log/mysqld.log。很显然这是ROOT才有的权限。我们普通用户不稀罕,自己提供日志目录,无拘无束。

 mkdir -p ~/logs/mysqld_safe/

cmake 构建MySQL
做好了上面的准备工作后,我们就可以开始安装MySQL了。首先是用cmake构建出一个Makefile来。

cmake . -DCMAKE_INSTALL_PREFIX=\$HOME/local/mysql-5.5.37 -DMYSQL_DATADIR=\$HOME/data/mysql-5.5.37 -DSYSCONFDIR=\$HOME/etc/mysql-5.5.37

很重要的一点就是通过-DCMAKE_INSTALL_PREFIX,-DMYSQL_DATADIR,-DSYSCONFDIR参数来设定自己的环境的:MySQL安装的目录,MySQL存放数据的目录,MySQL存放和读取配置的目录。

make
make install

至此,MySQL已经成功安装到我们指定的目录下了。不信,您到$HOME/local/mysql-5.5.37目录下瞧瞧。但是先别急着瞅,先把安装包里面提供的一个配置文件模板拷贝到我们指定的配置目录下先:

cp support-files/my-huge.cnf ~/etc/mysql-5.5.37/my.cnf

修改配置文件
  我们自己的配置目录下终于有属于自己的配置文件了。那我们就好好的配置和使用它吧。黑色加粗的地方就是修改的点。

vi ~/etc/mysql-5.5.37/my.cnf

# The following options will be passed to all MySQL clients
[client]
#password   = your_password
port       = 36810
socket       = /home1/lxy/webServer/mysql/local/mysql-5.5.37/mysql.sock
# Here follows entries for some specific programs

#The MySQL server
[mysqld]
port    = 36810
socket  = /home1/lxy/webServer/mysql/local/mysql-5.5.37/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 8
basedir = /home1/lxy/webServer/mysql/local/mysql-5.5.37
datadir = /home/leoox/data/mysql-5.5.37

[mysql]
# no-auto-rehash
auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[mysqld_safe]
log-error=/home/leoox/logs/mysqld_safe/mysqld.log
pid-file=/home/leoox/data/mysql-5.5.37/mysqld.pid

稍微解释一下:

1、默认端口是3306,根据个人喜好修改。不过建议不要使用默认的端口,和同一台机器的同事冲突不说。关键是容易被别人攻击。

2、datadir,顾名思义,就是MySQL存储具体数据的地方了。我们之前的准备工作就是为了它。

3、auto-rehash。这个配置项默认是no-auto-rehash。我把它注释掉了,改成了auto-rehash。好处就是使用mysql客户端连接的时候,在命令行里面输入sql的时候,tab键可以起到自动补全的作用哦。非常方便和实用!

4、专门为mysqld_safe而设置的。这样我们实用mysqld_safe来启动mysql的时候,就可以顺利启动了。毕竟日志文件的目录是我们为他专门设定的。

5、socket是要改的,不然会因为没有root权限报错。

初始化MySQL


接下来就可以初始化MySQL了,建立一些MySQL本身需要的库表等基础数据。

cd ~/local/mysql-5.5.37
[leoox@localhost mysql-5.5.37]$ ./scripts/mysql_install_db --no-defaults --defaults-file=/data/home/jianjunli/etc/mysql-5.5.37/my.cnf

这样就可以了,so easy。稍微解释下:
1、–no-defaults就是完全不使用默认的东西,我们就是要用完全属于自己的MySQL。
2、–defaults-file就是指定我们自己的配置文件。
3、很多网上的文章都会加上–user=mysql。这也曾经让我很困惑,我是普通用户,和mysql这个用户有什么关系呢。今天终于明白,只有root用户才有资格使用这个参数来指定哪个用户运行mysqld,不指定的话,就是当前登陆用户。所以我们没必要带上这个参数了。
具体看 –user的解释:
这里写图片描述

大功告成,启动和使用MySQL


终于可以剪彩了。激动人心的时刻:

cd ~/local/mysql-5.5.37
[leoox@localhost mysql-5.5.37]$ ./bin/mysqld_safe --defaults-file=../../etc/mysql-5.5.37/my.cnf &  

进入MySQL


直接上命令

cd ~/local/mysql-5.5.37
[user@host mysql]$./bin/mysql -hlocalhost -uroot 

注意这个时候要使用root用户名来操作,不然没有权限

退出MySQL


偶然的机会,知道怎么命令行结束MySQL了。以前一直都是直接kill -9,太粗暴了,阿弥陀佛…

其实可以使用mysqladmin来退出MySQL。

cd ~/local/mysql-5.5.37
[leoox@localhost mysql-5.5.37]$ ./bin/mysqladmin -hlocalhost -uroot shutdown

不行的话还是要用kill -9

ps -ux
kill -9 (进程id)
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值