mysql-5.6原始碼安裝配置
環境:CentOS6.3/6.4 最小化預設安裝,配置好網絡卡。
本安裝將MySQL的資料檔案與執行檔案分離,如果你打算設定到不同的路徑,注意修改對應的執行命令和資料庫初始化指令碼。
多說兩句:在啟動MySQL服務時,會按照一定次序搜尋my.cnf,先在/etc目錄下找,找不到則會搜尋"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置檔案的預設位置!注意:在CentOS 6.4版作業系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,需要將此檔案更名為其他的名字,如:/etc/my.cnf.bak,否則,該檔案會干擾原始碼安裝的MySQL的正確配置,造成無法啟動。
# 修改防火牆設定,開啟3306埠
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 重啟防火牆使新設定生效
service iptables restart
# 新增使用者組
groupadd mysql
# 新增使用者
useradd mysql -g mysql –s /sbin/nologin
# 新建資料庫執行檔案目錄
mkdir -p /usr/local/mysql/
# 新建資料庫資料檔案目錄
mkdir -p /data/mysql/data/
# 編輯PATH搜尋路徑
vim /etc/profile #把mysql服務加入系統環境變數:在最後新增下面這一行
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
# 生效PATH搜尋路徑
source /etc/profile
# 安裝編譯原始碼所需的工具和庫
yum -y install wget gcc-c++ ncurses-devel cmake make perl
# 進入原始碼壓縮包下載目錄
cd /usr/src
# 解壓縮原始碼
tar -zxvf mysql-5.6.10.tar.gz
# 進入解壓縮原始碼目錄
cd mysql-5.6.10
# 從mysql5.5起,mysql原始碼安裝開始使用cmake了,執行原始碼編譯配置指令碼,注意前面的 “-” 要帶上。
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/data\
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1
# 編譯原始碼,這一步時間會較長,耐心等待。
make
# 安裝
make install
# 清除安裝臨時檔案
make clean
# 修改目錄擁有者
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
# 進入安裝路徑
cd /usr/local/mysql
cp support-files/my-huge.cnf/etc/my.cnf (mysql-5.5不會自動生成,可拷貝配置檔案到/etc目錄下)
vi /etc/my.cnf #編輯配置檔案,在 [mysqld] 部分增加
user = mysql
port = 3306
socket = /data/mysql/mysql.sock
pid-file = /data/mysql/mysql.pid
log_error = /data/mysql/mysql-error.log
datadir = /data/mysql/data #新增MySQL資料庫路徑
# 執行初始化配置指令碼,建立系統自帶的資料庫和表。
scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data
# 複製服務啟動指令碼
cp support-files/mysql.server /etc/init.d/mysqld
# 啟動MySQL服務
service mysqld start
# 設定開機自動啟動服務
chkconfig mysqld on
# 修改MySQL使用者root的密碼
mysql -u root
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY"root";
mysql>update user set Password = password('123456') where User='root';
mysql>flush privileges;
或者GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY ‘123456’ WITH GRANT OPTION; #在mysql控制檯執行允許遠端連線mysql
mysql>exit;
# 可選:執行安全設定指令碼,修改MySQL使用者root(不是系統的root!)的密碼,禁止root遠端連線(防止破解密碼),移除test資料庫和匿名使用者,強烈建議生產伺服器使用:
/usr/local/mysql/bin/mysql_secure_installation