Linux下非root权限使用cmake安装MySQL
一、必备软件
- MySQL的安装包:自己去官网找
- cmake的安装包:cmake-2.8.12.2.tar.gz 如果您的环境里面已经安装有cmake,那就恭喜你,可以省去安装cmake了。有需要的朋友,同样可以到我的百度网盘里面提取。链接是:http://pan.baidu.com/s/1kTBlS15 提取的密码是:tivp
二、安装cmake
使用cmake来构建工程了,改变了经典的安装三步曲(configure & make & make install)
由于是普通用户,记得通过prefix参数指定一个属于自己的安装目录。
./configure --prefix=$HOME/local/cmake-2.8.12.2 make make install
你可以在
$HOME/local/cmake-2.8.12.2/bin
目录里面看到cmake了, 再添加环境变量
vi ~/.bash_profile 在 path的后面加上 $HOME/local/cmake-2.8.12.2/bin source ~/.bash_profile #更新
先cmake目录执行
hash -r
清理cmake缓存, 任意路径再执行cmake --version
看看
三、安装MySQL
- 创建MySQL数据目录
mkdir -p ~/data/mysql-5.5.37
MySQL的数据就会存放在这里了。- 创建MySQL配置文件的目录
mkdir -p ~/etc/mysql-5.5.37
这样我们就不用去理会root权限才能操作的/etc/my.cnf。- 创建mysqld_safe的日志目录
mkdir -p ~/logs/mysqld_safe/
通过这个启动MySQL。但是它默认打印日志在/var/log/mysqld.log。很显然这是ROOT才有的权限。我们普通用户不稀罕,自己提供日志目录,无拘无束。- cmake 构建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, 是MySQL安装的目录
-DMYSQL_DATADIR, 是MySQL存放数据的目录
-DSYSCONFDIR,是MySQL存放和读取配置的目录。make
make install
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 以下选项将传递给所有MySQL客户端
[client]
#password = your_password
port =3606
socket = /tmp/mysql.sock
#Here follows entries for some specific programs
#The MySQL server[mysqld]
port = 36810
socket = /tmp/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 尝试使用CPU *2的线程并发数
thread_concurrency = 8
datadir =/home/leoox/data/mysql-5.5.37
[mysql]
#no-auto-rehash 客户端连接的时候, 使用tab键可以起到自动补全auto-rehash
[mysqld_safe]
log-error =/home/leoox/logs/mysqld_safe/mysqld.log
pid-file =/home/leoox/data/mysql-5.5.37/mysqld.pid
五、初始化MySQL
接下来就可以初始化MySQL了,建立一些MySQL本身需要的库表等基础数据。
cd ~/local/mysql-5.5.37
-- ./scripts/mysql_install_db --no-defaults --defaults-file=/data/home/jianjunli/etc/mysql-5.5.37/my.cnf
no-defaults 就是完全不使用默认的东西,我们就是要用完全属于自己的MySQL。
–defaults-file就是指定我们自己的配置文件。
很多网上的文章都会加上–user=mysql。这也曾经让我很困惑,我是普通用户,和mysql这个用户有什么关系呢。只有root用户才有资格使用这个参数来指定哪个用户运行mysqld,不指定的话,就是当前登陆用户。所以我们没必要带上这个参数了。
启动和使用MySQL
cd ~/local/mysql-5.5.37
启动MySQL./bin/mysqld_safe &
退出MySQL./bin/mysqladmin -hlocalhost -uroot -P3306 shutdown
总结:重要的三个目录
- 数据目录 --data
- 配置文件的目录 --my.cnf
- 日志目录 --.log