Linux編譯安裝MySQL5.6


為了防止無良網站的爬蟲抓取文章,特此標識,轉載請注明文章出處。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/4311061.html

 

 

 

此處使用的MySQL為5.6版本。

卸載MySQL

首先卸載由RPM包安裝的MySQL。系統自帶的MySQL本質也是由RPM包安裝的。

查詢系統中MySQL的相關程序:

rpm -qa | grep mysql

wps156C.tmp

 

卸載MySQL相關程序:

rpm -e 包名  或   rpm -e --nodeps 包名

 

例:卸載mysql-libs

rpm -e mysql-libs    #卸載

wps158C.tmp

說明:若存在依賴關系,則無法被卸載。

 

忽略依賴關系卸載:

rpm -e --nodeps mysql-libs

wps158D.tmp

 

刪除老版本的MySQL的開發頭文件和庫(若沒有使用RPM版本的MySQL,則該步驟不會使用到)

rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql

 

注意:卸載后/var/lib/mysql中的數據及/etc/my.cnf不會刪除,如果確定沒用后就手工刪除

rm -f /etc/my.cnf
rm -fr /var/lib/mysql

 

 

 

 

編譯安裝MySQL

配置編譯環境

MySQL5.5及以上版本都開始用cmake方式進行配置編譯。(MySQL5.0,5.1 均使用configure進行配置。)所以需要先安裝好cmake

方法一:

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

 

方法二:

CentOS5.5的yum沒有cmake,所以可以選擇編譯安裝cmake。

安裝編譯源碼所需的工具和庫

yum install gcc gcc-c++ ncurses-devel perl 

 

安裝cmake,從 www.cmake.org 下載源碼並編譯安裝

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz  
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2  
./bootstrap ; make ; make install

 

下載MySQL源碼包后開始編譯

tar -zxf mysql-5.6.23.tar.gz
cd mysql-5.6.23

 

 

 

一些准備工作

設置MySQL用戶和組

新增mysql用戶組

groupadd mysql

 

新增mysql用戶

useradd -r -g mysql mysql

 

新建MySQL所需要的目錄

新建mysql安裝目錄

mkdir -p /usr/local/mysql

 

新建mysql數據庫數據文件目錄

mkdir -p /data/mysqldb

 

 

 

編譯安裝

CMake執行腳本為:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1

說明:

網上有些文章中給出的cmake命令如下:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

 

編譯后警告顯示:

wps158E.tmp

即MYSQL_USER等模塊式不可用的。

此時,若需要重新配置,請刪除CMakeCache.txt文件:

rm CMakeCache.txt

 

去掉MYSQL_USER等不可被用的選項后,再重新編譯即可。

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_TCP_PORT=3306

 

 

編譯 & 安裝

make
make install

這兩步都需要很長時間,請耐心等待。

 

修改mysql目錄所有者和組

修改mysql安裝目錄

cd /usr/local/mysql
chown -R mysql:mysql .

 

修改mysql數據庫文件目錄

cd /data/mysqldb
chown -R mysql:mysql .

 

說明:

chown 最后跟文件名。此處使用".",表示當前目錄。

 

 

啟動MySQL

初始化mysql數據庫

cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb

wps159F.tmp

...... ......

wps15A0.tmp

說明:

從打印日志可以看出,mysql_install_db命令的作用是生成MySQL系統表。並且最后在mysql目錄下生成一個my.cnf文件。

--user=mysql 作用是指定運行mysqld進程的用戶名。設置這個用戶以后,所有通過mysqld進程創建的文件(如日志等)都會屬於這個用戶。

wps15A1.tmp

 

 

 

mysql配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 

注:如果/etc/my.cnf文件存在,則覆蓋。

關於MySQL配置文件存在多個訪問位置。MySQL會以此訪問,后訪問到的配置會覆蓋先前的配置。

MySQL訪問配置文件的訪問路徑與訪問順序如下:

wps15D1.tmp

 

配置MySQL

[client] 
#password       = your_password 
port            = 3306 
socket          = /data/mysql/mysql.sock 
default-character-set=utf8 
# Here follows entries for some specific programs

# The MySQL server 
[mysqld] 
port            = 3306 
character_set_server=utf8 
basedir=/data/mysql 
datadir=/data/mysql/data 
socket          = /data/mysql/mysql.sock 
skip-external-locking 
key_buffer_size = 16M 
max_allowed_packet = 1M 
table_open_cache = 64 
sort_buffer_size = 512K 
net_buffer_length = 8K 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M

 

 

將MySQL執行命令添加入PATH

vim /etc/profile

 

在文件的末尾添加內容:

PATH=$PATH:/usr/local/mysql/bin
export PATH

 

保持退出后,執行:

source /etc/profile

 

 

將MySQL設置為系統服務並啟動服務

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

 

即,MySQL可以以如下形式啟動:

service mysqld start

 

如果報錯 "Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/rhelubuntu.com.pid). " 則修改

vim  /etc/init.d/mysqld

修改basedir=/usr/local/mysql             -----mysql安裝位置

修改datadir=/var/data/mysqldata          -----mysql數據文件存放位置

 一般修改好這個再重新啟動mysql應該不會報錯了。

 

檢查MySQL是否已經啟動:

netstat -tulnp | grep 3306

 

 

配置用戶

使用MySQL客戶端連接MySQL服務器

mysql -u root -p

初始密碼為空,如果能登陸上,則安裝成功。

 

設置mysql管理員密碼

mysqladmin -u root password "123456";

則123456即為新密碼。

 

設置mysql 遠程登錄

grant all on *.* to root@'%';
flush privileges;

更多配置,略。

 

配置防火牆

防火牆的3306端口默認沒有開啟,若要遠程訪問,需要開啟這個端口

打開/etc/sysconfig/iptables

在"-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT",下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

 

然后保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:

service iptables restart

 

 

CentOS 7中默認使用Firewalld做防火牆,所以修改iptables后,在重啟系統后,根本不管用。

Firewalld中添加端口方法如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

 

 

 

為了防止無良網站的爬蟲抓取文章,特此標識,轉載請注明文章出處。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/4311061.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM