一、準備工作:
1、查詢系統中已安裝的MySQL相關軟件包
[root@MySQL ~]# rpm -qa|grep -i mysql
2、如果MySQL已開啓,停止運行MySQL服務器
[root@MySQL ~]#service mysqld stop
3、卸載系統包
[root@MySQL ~]# rpm -e perl-DBD-MySQL-4.013-3.el6.x86_64 --nodeps
[root@MySQL ~]# rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps
[root@MySQL ~]# rpm -e qt-mysql-4.6.2-25.el6.x86_64 --nodeps
二、安裝編譯
1、MySQL編譯依賴
(1)、必備的包和工具
gcc/g++ :MySQL 5.6開始,需要使用g++進行編譯。
cmake :MySQL 5.5開始,使用cmake進行工程管理,cmake需要2.8以上版本。
bison :MySQL語法解析器需要使用bison進行編譯。
ncurses-devel :用於終端操作的開發包。
zlib :MySQL使用zlib進行壓縮。
(2)、功能需要的包
libxml :用於XML輸入輸出方式的支持。
openssl :使用openssl安全套接字方式通信。
dtrace :用於診斷MySQL問題。
2、MySQL基本編譯參數
cmake 參數說明手冊參考:http://www.blogjava.net/kelly859/archive/2012/09/04/387005.html
--CMAKE_BUILD_TYPE //編譯的版本類型:RelWithDebInfo和Debug,不同之處是RelWithDebInfo會進行優化。
--CMAKE_INSTALL_PREFIX //指定make install安裝的目標路徑。
--SYSCONFDIR //指定配置文件的默認路徑。
--MYSQL_DATADIR //指定data目錄的默認路徑.
--WITH_DEBUG // 指定是否有debugging信息,一般用於源碼調試時,打開WITH_DEBUG,生產環境關閉。
--ENABLED_PROFILING //指定是否可以使用show profile顯示操作執行的詳細信息。
--DEFAULT_CHARSET //指定默認字符集,可以在啓動的配置文件中指定。
--DEFAULT_COLLATION // 指定默認字符比較、排序的規則
--WITH_EXTRA_CHARSETS //指定其他可能使用的字符集。
--WITH_SSL //指定SSL的類型,從5.6.6開始默認bundled類型,此外也可以指定SSL庫的路徑地址。
--WITH_ZLIB //指定zlib的類型,用於壓縮功能。
--WITH_storage_STORAGE_ENGINE //指定編譯支持的存儲引擎,默認支持MyISAM,MERGE,MEMORY,CSV存儲引擎。
--ENABLED_LOCAL_INFILE //指定是否允許使用load data infile功能。
--WITH_EMBEDDED_SERVER //指定是否編譯libmysqld嵌入式庫
--INSTALL_LAYOUT //指定安裝的佈局類型。
3、安裝信息
操作系統 RedHat 6.4
[root@MySQL ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago)
MySQL 版本 5.6.23
下載地址:http://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz/from/http://cdn.mysql.com/
安裝目錄爲:/app/mysql/
數據目錄爲:/data/mysqldata
存儲引擎包括:MEMORY,MyISAM,InnoDB等
字符集爲:UTF8
4、安裝源碼說依賴的庫
[root@MySQL ~]# yum -y install gcc gcc-c++ autoconf zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
5、下載所需軟件包:
#將下載的文件都放到/opt目錄下,如下
cmake:http://www.cmake.org/files/v2.8/cmake-2.8.11.1.tar.gz
bison:http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz
m4:http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz
6、所需包
安裝cmake編譯器
[root@MySQL ~]# cd /opt
[root@MySQL ~]# tar -xvf cmake-2.8.11.1.tar.gz
[root@MySQL ~]# cd cmake-2.8.11.1
[root@MySQL ~]# ./bootstrap
[root@MySQL ~]# make && make install
安裝m4
[root@MySQL ~]# tar -xvf m4-1.4.16.tar.gz
[root@MySQL ~]# cd m4-1.4.16
[root@MySQL ~]# ./configure && make && make install
安裝bison
[root@MySQL ~]# tar -xvf bison-2.7.tar.gz
[root@MySQL ~]# cd bison-2.7
[root@MySQL ~]# ./configure && make && make install
7、創建mysql用戶與組,相關目錄
[root@MySQL ~]# /usr/sbin/groupadd mysql
[root@MySQL ~]# /usr/sbin/useradd -g mysql mysql
[root@MySQL ~]# mkdir -p /app/mysql
[root@MySQL ~]# chown -R mysql:mysql /app/mysql
[root@MySQL ~]# mkdir -p /data/mysqldata
[root@MySQL ~]# chown -R mysql:mysql /data/mysqldata/
8、編譯安裝mysql
[root@MySQL opt]# tar -zxvf mysql-5.6.23.tar.gz
[root@MySQL opt]# cd mysql-5.6.23
[root@MySQL mysql-5.6.23]# export CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
[root@MySQL mysql-5.6.23]# export CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
[root@MySQL mysql-5.6.23]# export CXX=g++
[root@MySQL mysql-5.6.23]# cmake -DCMAKE_INSTALL_PREFIX=/app/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=utf8,gbk \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldata/ -DSYSCONFDIR=/etc \
-DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 \
[root@MySQL mysql-5.6.23]# make && make install
9、初始化數據庫
拷貝mysql配置文件
[root@MySQL mysql-5.6.23]# cp support-files/my-default.cnf /etc/my.cnf
[root@MySQL ~]# cd /app/mysql/scripts/
[root@MySQL scripts]# ./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/data/mysqldata/
10、配置環境變量
[root@MySQL ~]# vim /etc/profile
PATH=/app/mysql/bin:/app/mysql/lib:$PATH
export PATH
[root@MySQL ~]# source /etc/profile
11、設置開機啓動
[root@MySQL mysql-5.6.23]# cp support-files/mysql.server /etc/init.d/mysqld
[root@MySQL mysql-5.6.23]# chkconfig --add mysqld
[root@MySQL mysql-5.6.23]# chkconfig --list mysqld
mysqld 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
[root@MySQL mysql-5.6.23]# chmod 755 /etc/init.d/mysqld
[root@MySQL mysql-5.6.23]# service mysqld start
Starting MySQL..[確定]
12、初始化root密碼
[root@MySQL ~]#/app/mysql/bin/mysqladmin -u root password '123456'
遇到問題 如果不能初始化密碼,出現ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@MySQL ~]# /etc/init.d/mysql stop
[root@MySQL ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[root@MySQL ~]# mysql
UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;
[root@MySQL ~]# mysql -uroot -p123456
13、訪問授權
[root@MySQL ~]#mysql/bin/mysql -uroot -p #敲入該命令後,屏幕會提示輸入密碼,輸入上一步設置的密碼
刪除root密碼爲空的記錄
mysql> use mysql;
mysql> delete from user where password='';
mysql> flush privileges;
配置mysql允許root遠程登錄 #登錄
mysql> grant all privileges on *.* to root@'%' identified by "123456";
mysql> flush privileges;
mysql> select User,Password,Host from user;