之前就寫過一篇mysql編譯裝到預設位置的教學,如果要裝到指定的位置呢?

我把安裝那段修改了一下,其他部分是一樣的,最重要的是cmake給的參數,以下這幾個尤其重要: -DCMAKE_INSTALL_PREFIX:mysql的basedir -DMYSQL_DATADIR:放DB資料的資料夾,這個資料夾的權限設定非常重要 -DMYSQL_USER:跑mysql的系統帳號,通常習慣是建立一個「mysql」的帳號 -DSYSCONFDIR:mysql設定檔所在的資料夾,一般是放在/etc/

( 情境是我要把mysql裝到/home/bruce/mysql/ )

MySQL 5.5開始改用cmake,所以以前是下./configure,現在要下cmake 裝好跑不起來的話,十之八九跟目錄權限有關!

	sudo apt-get install cmake bison libncurses5-dev

	sudo groupadd mysql
	sudo useradd -r -g mysql mysql

	wget "http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.he.net/"
	mv index.html mysql-5.5.15.tar.gz # 在某些版本下wget後會直接是檔名,就不需要執行這行
	tar -xvzf mysql-5.5.15.tar.gz
	cd mysql-5.5.15
	cmake -DCMAKE_INSTALL_PREFIX=/home/bruce/mysql -DMYSQL_DATADIR=/home/bruce/mysql/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DSYSCONFDIR=/home/bruce .
	make
	make install

	cd /home/bruce/mysql
	sudo chown mysql.mysql -R .
	./scripts/mysql_install_db --user=mysql

	./bin/mysqld_safe --user=mysql &
	./bin/mysql_secure_installation
	#他會引導你設定mysql root密碼,以及一些選項,我是全部都打Y (yes)

	cp support-files/my-huge.cnf /home/bruce/my.cnf # cmake時的DSYSCONFDIR參數
	sudo cp support-files/mysql.server /etc/init.d/mysql

	ps -Al | grep mysqld_safe #這行與下一行都只是為了砍掉mysqld_safe,其實重開機後應該也就沒了
	sudo kill -SIGKILL <<pid>> #<<pid>>是找出剛才的mysql_safe的pid

	sudo update-rc.d -f mysql defaults #開機自動執行

	sudo vim /etc/profile
	# 加在最尾端;
	PATH=$PATH:/usr/local/mysql/bin

如果mysql/data底下出現其他不是owned by mysql或group不是mysql的檔案可能會造成error 我有遇到這樣的問題,但不知道在什麼情況下會重現,所以要注意一下