天天看點

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

繼續閱讀