源碼安裝MySQL5.6

編譯安裝MySQL前的準備工做

Linux系統:CentOS-6.5_x64
依賴包:yum install gcc gcc-c++ ncurses-devel perl cmake

設置MySQL組和用戶

groupadd mysql
useradd -r -g mysql mysql
passwd mysql

新建MySQL所須要的目錄

使用mysql用戶登陸mysql

新建mysql安裝目錄

mkdir -p /home/mysql/dbmysql

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

mkdir -p /home/mysql/data

下載MySQL源碼包並解壓

tar -zxvf mysql-5.6.27.tar.gz
cd mysql-5.6.27

編譯安裝MySQL

設置編譯參數

cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql/dbmysql \
-DMYSQL_UNIX_ADDR=/home/mysql/dbmysql/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=/home/mysql/data/ \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=0
參數 註釋
-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將下載谷歌所使用的測試套件運行單元測試。

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

rm CMakeCache.txt

編譯源碼

make

安裝

make install

初始化mysql數據庫

cd /home/mysql/dbmysql
scripts/mysql_install_db --user=mysql --datadir=/home/mysql/data/

複製mysql服務啓動配置文件

sudo cp /home/mysql/dbmysql/support-files/my-default.cnf /etc/my.cnf

注:c++

  • 若是/etc/my.cnf文件存在,則覆蓋。
  • 這裏要使用sudo命令,故要切換到root用戶,執行
vim /etc/sudoers 添加 mysql ALL=(ALL) ALL

複製mysql服務啓動腳本及加入PATH路徑

sudo cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/profile
    export  PATH=/home/mysql/dbmysql/bin:/home/mysql/dbmysql/lib:$PATH
source /etc/profile

啓動mysql服務並加入開機自啓動

service mysqld start
sudo chkconfig mysqld on

檢查mysql服務是否啓動

netstat -tulnp | grep 3306   
mysql -u root -p

說明:密碼爲空,若是能登錄上,則安裝成功sql

修改MySQL用戶root的密碼

mysql> set password=password('123456');

容許遠程登陸

mysql> use mysql
mysql> desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> update user set Password = password('123456') where User='root';
mysql> select Host,User,Password from user where User='root';
mysql> flush privileges;
mysql> exit

配置字符集

vim /etc/my.cnf

[client]
password        = 123456    
port            = 3306
socket        =  /home/mysql/dbmysql/mysql.sock    
default-character-set=utf8    
 
[mysqld]    
port            = 3306
socket        =  /home/mysql/dbmysql/mysql.sock
character_set_server=utf8    
character_set_client=utf8    
collation-server=utf8_general_ci    
#(注意linux下mysql安裝完後是默認:表名區分大小寫,列名不區分大小寫; 0:區分大小寫,1:不區分大小寫)    
lower_case_table_names=1    
#(設置最大鏈接數,默認爲 151,MySQL服務器容許的最大鏈接數16384; )    
max_connections=1000
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
[mysql]    
default-character-set = utf8
相關文章
相關標籤/搜索