抄自:http://www.leoox.com/?p=256
以前一直不太会安装MySQL,尤其是没有ROOT权限的情况下,在自己的普通个人用户里安装MySQL,总会遇到各种各样的问题。一百度,发现基本上都是root用户里面安装MySQL的分享。
但今天在一个个人开发环境里需要安装MySQL,没有root权限的情况下,自己按照之前安装WordPress环境时的经验,竟然顺利的安装成功了。这就是所谓的“船到桥头自然直”吧。现在有一种大彻大悟的感觉,再不用理会网上分享的的修改/etc/my.cnf文件,添加一个mysql用户和用户组等等的问题了。(都没有root权限,怎么能修改/etc下的东西呢?完全不符合非root用户的需求嘛!)
话回正题。
一、必备软件
- MySQL的安装包:mysql-5.5.37.tar.gz 可以到MySQL官网下载。有需要的朋友,也可以到我的百度网盘里面提取。链接是:http://pan.baidu.com/s/1dD8Gnz7 提取的密码是:he8y
- cmake的安装包:cmake-2.8.12.2.tar.gz 如果您的环境里面已经安装有cmake,那就恭喜你,可以省去安装cmake了。有需要的朋友,同样可以到我的百度网盘里面提取。链接是:http://pan.baidu.com/s/1kTBlS15 提取的密码是:tivp
二、安装cmake
MySQL貌似从5.5版本开始就使用cmake来构建工程了,改变了经典的安装三步曲(configure & make & make install)。可以说cmake让MySQL在跨平台部署安装方便提供了很大的好处,反过来说,也是MySQL大大的推动了cmake的流行。包括我在内,还是一直在传统的Makefile里面进行工程的构造。说实话,我盲写一个Makefile都完成不了。但最近看了下cmake的语法,我觉得我未来可以使用cmake来构建工程了。加油。
扯远了。。。
cmake的安装,当然是我们熟悉的三步曲了。只不过,由于是普通用户,记得通过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就可以和cmake亲密接触了。不信,你在任意路径输入 cmake –version看看。
三、安装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来。
修改配置文件
# Here follows entries for some specific programs
# The MySQL server[mysqld]port = 36810socket = /tmp/mysql.sockskip-external-lockingkey_buffer_size = 384Mmax_allowed_packet = 1Mtable_open_cache = 512sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size = 8Mmyisam_sort_buffer_size = 64Mthread_cache_size = 8query_cache_size = 32M# Try number of CPU’s*2 for thread_concurrencythread_concurrency = 8datadir = /home/leoox/data/mysql-5.5.37
稍微解释一下:
1、默认端口是3306,根据个人喜好修改。不过建议不要使用默认的端口,和同一台机器的同事冲突不说。关键是容易被别人攻击。
2、datadir,顾名思义,就是MySQL存储具体数据的地方了。我们之前的准备工作就是为了它。
3、auto-rehash。这个配置项默认是no-auto-rehash。我把它注释掉了,改成了auto-rehash。好处就是使用mysql客户端连接的时候,在命令行里面输入sql的时候,tab键可以起到自动补全的作用哦。非常方便和实用!
4、专门为mysqld_safe而设置的。这样我们实用mysqld_safe来启动mysql的时候,就可以顺利启动了。毕竟日志文件的目录是我们为他专门设定的。
初始化MySQL
接下来就可以初始化MySQL了,建立一些MySQL本身需要的库表等基础数据。
cd ~/local/mysql-5.5.37
大功告成,启动和使用MySQL
终于可以剪彩了。激动人心的时刻:
cd ~/local/mysql-5.5.37
退出MySQL
哈哈,今天偶然的机会,也知道怎么命令行结束MySQL了。以前一直都是直接kill -9,太粗暴了,阿弥陀佛。。
其实可以使用mysqladmin来退出MySQL。
cd ~/local/mysql-5.5.37