免編譯方式安裝mysql-5.6.14

免編譯的方式安裝mysql-5.6.14


   今天領導要求使用免編譯的方式安裝生產環境的mysql,所以纔有了下文.  裏面涉及的目錄已經處理,大家根據需要自己來改吧!


1  下載mysql免編譯包:

wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz


2  設置mysql目錄:

tar -zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.14-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -M mysql
mkdir -p /work/mysql/data
chown -R mysql.mysql /work/mysql/data


3  初始化MySQL數據庫:

#提示:運行下面的命令初始化安裝mysql之前確認系統沒有/etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/work/mysql/data --user=mysql


4   添加mysqld 成爲系統服務並設置自啓動:

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


5  啓動mysql:

/etc/init.d/mysqld start


6  設置密碼:

/usr/local/mysql/bin/mysqladmin -u root password '你的密碼'


7  關於my.cnf:

mysqld-5.5以上版本的my.cnf這個文件 在執行初始化的時候,會自動安裝到/usr/local/mysql/my.cnf下。  並且主要修改裏面的選項配置


8  故障:

Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist


解決辦法:

這個問題是需要重新初始化mysql數據庫
mysql_install_db --basedir=/usr/local/mysql --datadir=/work/mysql/data --user=mysql


9  關於我的my.cnf:

/usr/local/mysql/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /work/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES



ps : 根據上面的內容可以自己做成一鍵安裝腳本。這樣就不必像以前那樣漫長的等待了.



------------------華麗的分割線------------------------

下面這個腳本是我在實際生產環境裏面使用的,跟上面的內容多少有點出入。大家自己修改吧



#!/bin/bash
#Date:2014/01/07
#BY:renzhenxing  qq:57674891
# 免編譯安裝mysql-5.6.14
#wget mysql-5.6.14 not install pack:
yum install -y gzip
cd /usr/local/src/
if [ -f mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz ];then
   echo "mysql-5.6.14 pack is exist!"
else
   echo "mysql pack is not exist,............now  download..................."
   wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
fi
tar -zxf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.14-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -M mysql
mkdir -p /data
chown -R mysql.mysql /data
[ -f /etc/my.cnf ] &&  mv /etc/my.cnf /etc/my.cnf_old
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
ln -s /usr/local/mysql/my.cnf /etc/my.cnf
cat>/etc/my.cnf<<EOF
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
/etc/init.d/mysqld start
echo " "
ps -ef | grep -v "grep mysql" |grep mysql
if [ $? -eq 0 ];then
   echo "mysql is install successful"
   exit 0
else
   echo "mysql is install failure!"
   exit 1
fi



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章