今天根據需求要在centos6.6上編譯安裝mysql5.5,由於之前編譯安裝過感受很簡單,可是今天仍是出現了點小問題,因此把過安裝過程總結了一下:mysql
好像從mysql5.5開始編譯安裝mysql須要用到cmake工具進行編譯安裝,既然是編譯安裝,那麼確定要用到一些依賴的類庫以及相關的編譯工具,因此須要事先安裝相關工具。c++
一 、編譯安裝sql
1.安裝mysql編譯過程當中所須要的依賴關係以及編譯工具(須要先配置好yum源)數據庫
# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel bison cmakecentos
2.使用yum安裝cmake編譯工具curl
#yum -y install cmakesocket
3.安裝前須要檢查一下是否安裝mysql,若是有就卸載掉tcp
# rpm -qa | grep mysqlide
4.下載mysql源碼包,並解壓工具
# tar xvf mysql-mysql-5.5.35.t15.tar
或者解壓到指定目錄(如:/usr/local)
# tar xvf mysql-mysql-5.5.35.t15.tar -C /usr/local
5.進入到mysql的解壓目錄,使用cmake編譯、安裝
# cd mysql-mysql-5.5.35.t15
1)使用cmake編譯(根據本身的具體要求選擇編譯參數,下邊的選項參數僅供參考)
#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
2)安裝
#make && make install
稍等一會。。。
6.須要建立mysql用戶和mysql組,並修改mysql安裝目錄的所屬用戶和組
1)建立mysql用戶和mysql組
#groupadd mysql
#useradd -g mysql -s /sbin/nologin mysql
2)修改mysql安裝目錄的所屬用戶和組
#chown -R mysql:mysql /usr/local/mysql
7.進入mysql安裝目錄,執行初始化腳本,建立mysql自帶的數據庫和表
# cd /usr/local/mysql
# cd scripts/
#./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
8.修改配置文件
# vi /etc/my.cnf
9.添加服務,設置mysql服務開機自啓
1)添加服務,進入mysql安裝目錄,拷貝目錄/support-files下的mysql.server文件到/etc/init.d/目錄下,並重名爲mysql
#cd /usr/local/mysql
#cp support-files/mysql.server /etc/init.d/mysql
2)設置開機自啓
# chkconfig mysql on
10.啓動mysql服務
11.編譯安裝的mysql沒有初始密碼,因此要給root用戶設置初始密碼
#/usr/local/mysql/bin/mysqladmin -u root password '123456'
12.由於手動編譯的,全部要爲mysql添加環境變量,否則在終端中輸入mysql將會提示命令找不到
1)編輯/etc/profile,在文件末尾添加以下內容
export PATH=$PATH:/usr/local/mysql/bin
如:
2)使文件當即生效
#source /etc/profile
13.如今mysql的安裝配置基本完成,能夠去登錄、使用
登陸時若是出現:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)錯誤
能夠修改/etc/my.cnf
添加以下內容:
[client]
socket=/var/lib/mysql/mysql.sock
如:
14.若是但願其它遠程主機訪問該mysql,能夠進行以下操做
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
或者也能夠去修改mysql庫中的user表,添加指定的host主機
15.因爲防火牆默認沒有開啓3306端口,因此須要手動開啓此端口
編輯/etc/sysconfig/iptables
添加以下內容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
16.此時咱們能夠查看一下容許訪問該數據庫的主機、用戶等信息
進入mysql庫,查看user表信息
mysql>use mysql
mysql>select host,user,password from user;
能夠看到咱們分別設置的兩個密碼(本地訪問mysql的root用戶密碼和遠程訪問mysql的root用戶的密碼)
若是須要指定某些主機能夠訪問該數據庫,則能夠修改該表,添加指定主機的ip到該表中。
17.若是要更改數據庫的默認端口,則須要更改配置文件/etc/my.cnf
添加以下內容:
port:端口號
例如:
而後重啓mysql服務
#service mysql restart
注意:若是此處修改了默認端口號,則防火牆容許訪問的端口號也要進行更改,要與此文件中的端口號保持一致
18.若是在局域網內出現鏈接mysql比較慢的狀況,多是與mysql的DNS反向解析有關,能夠把此功能關閉掉
修改文件/etc/my.cnf,添加以下內容:
skip-name-resolve
如:
重啓mysql服務便可。