安裝編譯好的二進位制mysql並更改路徑

kngnng發表於2013-02-22

     眾所周知,開源資料庫mysql有著其強大的靈活性,利用原始碼包,我以自定義安裝路徑,並且指定儲存路徑。mysql安裝方式不單單隻有RPM包、原始碼包安裝方式還有一種更為簡便的安裝方法(也可以稱為熟知的綠色版),更確切的說免安裝。

環境描述  

1.系統:linux centos 6
2.資料庫:mysql 5.6 二進位制原始碼包

說明
      Mysql二進位制原始碼包,不再需要進行編譯,直接拷/usr/local/mysql可,
因為預設已經在對原始碼編譯後指定到該目錄。現在需要更改這個路徑,及拷
貝到其他自定義目錄下來啟動mysql,需要一系列工作。


安裝
1、  建立自定義安裝目錄

mkdir /export1/server/mysql –p

2、  解壓縮原始碼包

tar zxvf mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz

3、  mysql-5.6.10-linux-glibc2.5-x86_64目錄下所有檔案拷貝到/export1/server/mysql

4、  建立mysql使用者

    useradd mysql

5、  許可權更改

chown mysql:mysql /export1 –R

6、  拷貝配置檔案

cp /export1/server/mysql/support-files/my-medium.cnf /etc/my.cnf

如果沒有,需要在其他地方拷貝一份

注意:my.cnf檔案中的路徑,如果是/usr/local/mysql,則將其替換為/export1/server/mysql

7、  初始化資料庫

cd /export1/server/mysql

./scripts/mysql_install_db –user=mysql 

注意:指定mysql使用者很重要,後面會說明

如果遇到一些許可權問題導致初始化沒有成功,很有可能是由於:

1/export1  base目錄許可權造成

2)可以嘗試指定basedirdatadir選項

--basedir=/export1/server/mysql    

--datadir=/export1/server/mysql/data

8、  啟動mysql後臺程式

./bin/mysqld_safe –user=mysql &

如果報錯,可以嘗試修改./bin/mysqld_safe中內容用/export1/server/mysql替換/usr/local/mysql

當提示如下:

Starting mysqld daemon with databases from /export1/server/mysql/data 

說明啟動正常這時回車或者ctrl+c退出即可。

 如果提示:

mysqld_safe mysqld from pid file /export1/server/mysql/data /*.pid ended

標識程式已死,臺程式沒有啟動,這時可以嘗試利用:

1)初始化資料庫,指定basedirdatadir,也可以在my.cnf中配置

2)具體可以看error日誌,找到錯誤

9、  後臺程式成功啟動後,可以登入資料庫

./bin/mysql

如果提示錯誤:

error 2002(HY000):Cant't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 

這個錯誤表示找不到sock檔案,預設mysql會去找sock檔案

/var/lib/mysql/mysql.sock,我們可以更改為其他的路徑:

如:/tmp/mysql.sock或者/export1/server/mysql/mysql.sock等,

但是該目錄要有mysql讀寫許可權。

10、此時可以正常登入

        ./bin/mysql

11、停止資料庫

我們可以利用以下方式停止資料庫

1./bin/mysqladmin shutdown

2ps –A | grep mysql 殺程式

3)利用系統服務指令碼,後面說明配置過程

12、建立系統服務指令碼

cp ./support-files/mysql.server /etc/init.d/mysqld

替換指令碼中的路徑將/usr/local 替換為/export1/server

測試利用/etc/inti.d/mysqld 停止、啟動資料庫

新增系統服務:

 chmod 700 /etc/init.d/mysqld
 chkconfig --add mysqld
 chkconfig --level 2345 mysqld on 

其他問題

退出登入,停止資料庫,在啟動後臺程式,這時如果報錯:

mysqld_safe mysqld from pid file /export1/server/mysql/data /*.pid ended

看具體error log

提示:

/export1/server/mysql/bin/mysqld: File '/export1/server/mysql/logbin/mysql-bin.index' not found (Errcode: 13 - Permission denied)

2013-02-22 14:31:44 2914 [ERROR] Aborting

在具體看下binlog日誌許可權,發現所屬人和所屬組變為root;

說明在初始化資料庫時沒有指定--user=mysql,導致新建立binlog

檔案為root建立,mysql不可讀;

更改logbin目錄及其下檔案為mysql:mysql;

再重新初始化mysql啟動mysql發現正常;


安裝指令碼參考

#!/bin/bash

#===============================================================

#準備工作

#1、拷貝mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz到機器

#2、拷貝mysql配置檔案到/etc

#===============================================================

#解壓縮mysql二進位制原始碼包到制定指定目錄,可自定義目錄

tar zxvf /software/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz -C /software

 

#建立自定義mysql存放目錄

mkdir /export1/server/mysql -p

 

#拷貝解壓好的mysql原始碼包檔案到自定義mysql目錄

cp -a /software/mysql-5.6.10-linux-glibc2.5-x86_64/* /export1/server/mysql

 

#建立mysql使用者

useradd mysql

 

#更改自定義mysql目錄許可權所屬人和所屬組

chown mysql:mysql /export1 -R

 

#拷貝mysql配置檔案,並修改路徑

rm -rf /etc/my.cnf

cp /etc/my.cnf.bak /etc/my.cnf

vi /etc/my.cnf << EOF

:%s#/usr/local#/export1/server#g

:%s#/var/lib#/export1/server#g

:wq

EOF

 

#進入自定義mysql目錄下

cd /export1/server/mysql

 

#初始化mysql資料庫,注意指定basedirdatadir

./scripts/mysql_install_db --user=mysql --basedir=/export1/server/mysql --datadir=/export1/server/mysql/data

 

#建立mysql啟動、停止等指令碼檔案,並修改檔案內容中的路徑

cp ./support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld << EOF

:%s#/usr/local#/export1/server#g

:wq

EOF

chmod 700 /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 2345 mysqld on

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26252014/viewspace-754606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章