天天看点

Linux下非root权限使用cmake安装MySQL

一、必备软件

  1. MySQL的安装包:自己去官网找
  2. 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

  1. 创建MySQL数据目录

    mkdir -p ~/data/mysql-5.5.37

    MySQL的数据就会存放在这里了。
  2. 创建MySQL配置文件的目录

    mkdir -p ~/etc/mysql-5.5.37

    这样我们就不用去理会root权限才能操作的/etc/my.cnf。
  3. 创建mysqld_safe的日志目录

    mkdir -p ~/logs/mysqld_safe/

    通过这个启动MySQL。但是它默认打印日志在/var/log/mysqld.log。很显然这是ROOT才有的权限。我们普通用户不稀罕,自己提供日志目录,无拘无束。
  4. 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存放和读取配置的目录。

  5. make

  6. make install

  7. 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

总结:重要的三个目录

  1. 数据目录 --data
  2. 配置文件的目录 --my.cnf
  3. 日志目录 --.log

继续阅读