mysql編譯安裝

1、安裝依賴庫和CMake

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

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

安裝cmake(安裝在/usr/local/src目錄)linux

wget https://cmake.org/files/v3.4/cmake-3.4.2.tar.gz(下載cmake)c++

tar xzvf cmake-3.4.2.tar.gz   (解壓)sql

cd cmake-3.4.2.tar.gz   (進入目錄)數據庫

./bootstrap ; bootstrap

make ; bash

make install   (安裝)服務器

make uninstall(卸載)socket

cd ~(返回系統根目錄)  

2、下載MySQL源碼包並解壓

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

tar zxvf mysql-5.6.17.tar.gz

cd mysql-5.6.17

3、編譯安裝MySQL

從mysql5.5起,mysql源碼安裝開始使用cmake了,設置源碼編譯配置腳本。

-DCMAKE_INSTALL_PREFIX=dir_name 設置mysql安裝目錄
-DMYSQL_UNIX_ADDR=file_name 設置監聽套接字路徑,這必須是一個絕對路徑名。默認爲/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 設置服務器的字符集。
缺省狀況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_sets.cmake文件包含容許的字符集名稱列表。
-DDEFAULT_COLLATION=collation_name 設置服務器的排序規則。
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存儲引擎選項:
MyISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,並不須要明確地安裝。
靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name 設置mysql數據庫文件目錄
-DMYSQL_TCP_PORT=port_num 設置mysql服務器監聽端口,默認爲3306
-DENABLE_DOWNLOADS=bool 是否要下載可選的文件。例如,啓用此選項(設置爲1),cmake將下載谷歌所使用的測試套件運行單元測試。

設置編譯參數

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

編譯安裝

make && make install 

注:須要從新運行配置,須要刪除CMakeCache.txt文件

再次設置編譯參數

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=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1

再次編譯源碼

make && make install 

4、設置MySQL用戶和組

新增mysql用戶組

groupadd mysql

新增mysql用戶

useradd -s /sbin/nologin -g mysql mysql(/sbin/nologin表示用戶不能夠登陸,能夠經過mysql登陸,-g mysql表是爲mysql分組添加用戶mysql)

usermod -s /sbin/nologin -g mysql mysql(表示爲mysql用戶,重設置分組和登陸)

5、修改mysql目錄全部者和組

修改mysql數據庫目錄

把mysql安裝文件(除了data)的主人都改成root,避免數據庫恢復爲出廠設置

chown -R root /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql/data

賦予目錄權限

chmod -R 777 /usr/local/mysql(Starting MySQL... ERROR! The server quit without updating PID file )

6、初始化mysql數據庫

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

7、複製mysql服務啓動配置文件

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

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

linux下讀取my.cnf順序

  1. /etc/my.cnf

  2. /etc/mysql/my.cnf

  3. SYSCONFDIR/my.cnf

  4. $MYSQL_HOME/my.cnf

  5. --defaults-extra-file->~/my.cnf

8、配置用戶及加入PATH路徑

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile

source /etc/profile

9、複製mysql服務啓動腳本

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

10、啓動mysql服務並加入開機自啓動(可選這個步驟,之後能夠本身啓動的)

chkconfig mysqld on

service mysqld restart

11、檢查mysql服務是否啓動

netstat -tulnp | grep 3306     

mysql -u root -p(全局可用)

密碼爲空,若是能登錄上,則安裝成功。

12、修改MySQL用戶root的密碼

進入mysql數據庫

/usr/local/mysql/bin/mysql

查看數據庫

show databases;

選擇mysql數據庫

use mysql;

查看用戶

select Host,User,Password from user;

+-----------+------+----------+

| Host      | User | Password |

+-----------+------+----------+

| localhost | root |          |

| niaoyun   | root |          |

| 127.0.0.1 | root |          |

| ::1       | root |          |

| localhost |      |          |

| niaoyun   |      |          |

+-----------+------+----------+

刪除匿名帳號

select Host,User,Password from user where User = '';

delete from user where User = '';

select Host,User,Password from user where  Host!='localhost';

delete from user where Host!='localhost';

設置密碼

update user set Password = password('root') where Host='localhost'; 

flush privileges;

十3、添加mysql用戶

@前面的mysql表示用戶名,%表示全部的電腦均可以鏈接,也能夠設置某個ip地址運行鏈接,雙引號裏面的123456表示密碼

grant ALL PRIVILEGES on *.* to mysql@"%" Identified by "123456" WITH GRANT OPTION;

Linux系統MySQL開啓遠程鏈接

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables restart

/etc/init.d/iptables status

十4、可能會出現的錯誤

問題:   
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).   
解決:   

修改/etc/my.cnf 中datadir,指向正確的mysql數據庫文件目錄  


問題:   
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)   

解決:   

新建一個連接或在mysql中加入-S參數,直接指出mysql.sock位置。

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock   

/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock

MySQL問題解決:-bash:mysql:command not found  
由於mysql命令的路徑在/usr/local/mysql/bin下面,因此你直接使用mysql命令時,  
系統在/usr/bin下面查此命令,因此找不到了   
解決辦法是:  作個連接便可

ln -s /usr/local/mysql/bin/mysql /usr/bin

若是還有問題請看:http://blog.rekfan.com/articles/186.html

相關文章
相關標籤/搜索