清理CentOS7下的MariaDB。
[root@localhost ~]#rpm -qa | gremp mariadb
[root@localhost ~]# rpm -e --nodeps mariadb.x86_64 1
:5.5.41-2.el7_0
- 下載源碼
[root@localhost ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz
2.解壓
[root@localhost ~]# tar zxvf mysql-5.6.23.tar.gz
3.安裝必要的包
[root@localhost ~]# sudo yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper
已加載插件:fastestmirror, langpacks
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/2): extras/7/x86_64/primary_db | 117 kB 00:00
(2/2): updates/7/x86_64/primary_db | 3.9 MB 00:01
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.skyshe.cn
* updates: mirrors.163.com
軟件包 perl-Data-Dumper-2.145-3.el7.x86_64 已安裝並且是最新版本
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 cmake.x86_64.0.2.8.11-5.el7 將被 安裝
---> 軟件包 gcc-c++.x86_64.0.4.8.5-4.el7 將被 安裝
--> 正在處理依賴關系 libstdc++-devel = 4.8.5-4.el7,它被軟件包 gcc-c++-4.8.5-4.el7.x86_64 需要
--> 正在處理依賴關系 libstdc++ = 4.8.5-4.el7,它被軟件包 gcc-c++-4.8.5-4.el7.x86_64 需要
--> 正在處理依賴關系 gcc = 4.8.5-4.el7,它被軟件包 gcc-c++-4.8.5-4.el7.x86_64 需要
--> 正在處理依賴關系 libmpc.so.3()(64bit),它被軟件包 gcc-c++-4.8.5-4.el7.x86_64 需要
---> 軟件包 ncurses-devel.x86_64.0.5.9-13.20130511.el7 將被 安裝
--> 正在檢查事務
---> 軟件包 gcc.x86_64.0.4.8.5-4.el7 將被 安裝
--> 正在處理依賴關系 libgomp = 4.8.5-4.el7,它被軟件包 gcc-4.8.5-4.el7.x86_64 需要
--> 正在處理依賴關系 cpp = 4.8.5-4.el7,它被軟件包 gcc-4.8.5-4.el7.x86_64 需要
--> 正在處理依賴關系 libgcc >= 4.8.5-4.el7,它被軟件包 gcc-4.8.5-4.el7.x86_64 需要
---> 軟件包 libmpc.x86_64.0.1.0.1-3.el7 將被 安裝
---> 軟件包 libstdc++.x86_64.0.4.8.3-9.el7 將被 升級
---> 軟件包 libstdc++.x86_64.0.4.8.5-4.el7 將被 更新
---> 軟件包 libstdc++-devel.x86_64.0.4.8.5-4.el7 將被 安裝
--> 正在檢查事務
---> 軟件包 cpp.x86_64.0.4.8.5-4.el7 將被 安裝
---> 軟件包 libgcc.x86_64.0.4.8.3-9.el7 將被 升級
---> 軟件包 libgcc.x86_64.0.4.8.5-4.el7 將被 更新
---> 軟件包 libgomp.x86_64.0.4.8.3-9.el7 將被 升級
---> 軟件包 libgomp.x86_64.0.4.8.5-4.el7 將被 更新
--> 解決依賴關系完成
依賴關系解決
=====================================================
Package 架構 版本 源 大小
=====================================================
正在安裝:
cmake x86_64 2.8.11-5.el7 base 6.7 M
gcc-c++ x86_64 4.8.5-4.el7 base 7.2 M
ncurses-devel x86_64 5.9-13.20130511.el7 base 713 k
為依賴而安裝:
cpp x86_64 4.8.5-4.el7 base 5.9 M
gcc x86_64 4.8.5-4.el7 base 16 M
libmpc x86_64 1.0.1-3.el7 base 51 k
libstdc++-devel x86_64 4.8.5-4.el7 base 1.5 M
為依賴而更新:
libgcc x86_64 4.8.5-4.el7 base 95 k
libgomp x86_64 4.8.5-4.el7 base 130 k
libstdc++ x86_64 4.8.5-4.el7 base 298 k
事務概要
=====================================================
安裝 3 軟件包 (+4 依賴軟件包)
升級 ( 3 依賴軟件包)
總計:39 M
總下載量:38 M
Is this ok [y/d/N]: y
Downloading packages:
(1/7): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00
(2/7): gcc-c++-4.8.5-4.el7.x86_64.rpm | 7.2 MB 00:03
(3/7): libstdc++-devel-4.8.5-4.el7.x86_64.rpm | 1.5 MB 00:03
(4/7): ncurses-devel-5.9-13.20130511.el7.x86_64.rpm | 713 kB 00:00
(5/7): cpp-4.8.5-4.el7.x86_64.rpm | 5.9 MB 00:04
(6/7): cmake-2.8.11-5.el7.x86_64.rpm | 6.7 MB 00:05
(7/7): gcc-4.8.5-4.el7.x86_64.rpm | 16 MB 00:16
-----------------------------------------------------------------------
總計 2.3 MB/s | 38 MB 00:16
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝: libmpc-1.0.1-3.el7.x86_64 1/13
正在更新: libgcc-4.8.5-4.el7.x86_64 2/13
正在更新: libstdc++-4.8.5-4.el7.x86_64 3/13
正在安裝: libstdc++-devel-4.8.5-4.el7.x86_64 4/13
正在安裝: cpp-4.8.5-4.el7.x86_64 5/13
正在更新: libgomp-4.8.5-4.el7.x86_64 6/13
正在安裝: gcc-4.8.5-4.el7.x86_64 7/13
正在安裝:gcc-c++-4.8.5-4.el7.x86_64 8/13
正在安裝:cmake-2.8.11-5.el7.x86_64 9/13
正在安裝: ncurses-devel-5.9-13.20130511.el7.x86_64 10/13
清理: libstdc++-4.8.3-9.el7.x86_64 11/13
清理: libgcc-4.8.3-9.el7.x86_64 12/13
清理: libgomp-4.8.3-9.el7.x86_64 13/13
驗證中: libstdc++-4.8.5-4.el7.x86_64 1/13
驗證中: libstdc++-devel-4.8.5-4.el7.x86_64 2/13
驗證中: gcc-4.8.5-4.el7.x86_64 3/13
驗證中: cpp-4.8.5-4.el7.x86_64 4/13
驗證中: ncurses-devel-5.9-13.20130511.el7.x86_64 5/13
驗證中: libgcc-4.8.5-4.el7.x86_64 6/13
驗證中: libgomp-4.8.5-4.el7.x86_64 7/13
驗證中: gcc-c++-4.8.5-4.el7.x86_64 8/13
驗證中: libmpc-1.0.1-3.el7.x86_64 9/13
驗證中: cmake-2.8.11-5.el7.x86_64 10/13
驗證中: libgcc-4.8.3-9.el7.x86_64 11/13
驗證中: libstdc++-4.8.3-9.el7.x86_64 12/13
驗證中: libgomp-4.8.3-9.el7.x86_64 13/13
已安裝:
cmake.x86_64 0:2.8.11-5.el7 gcc-c++.x86_64 0:4.8.5-4.el7
ncurses-devel.x86_64 0:5.9-13.20130511.el7
作為依賴被安裝:
cpp.x86_64 0:4.8.5-4.el7 gcc.x86_64 0:4.8.5-4.el7
libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-4.el7
作為依賴被升級:
libgcc.x86_64 0:4.8.5-4.el7 libgomp.x86_64 0:4.8.5-4.el7
libstdc++.x86_64 0:4.8.5-4.el7
完畢!
4.進入mysql源碼目錄,生成makefile
[root@localhost mysql-5.6.23]# cmake .
5.編譯
[root@localhost mysql-5.6.23]# make
6.安裝
[root@localhost mysql-5.6.23]# make install
mysql將會安裝到/usr/local/mysql路徑。
7.添加mysql用戶和組
[root@localhost mysql-5.6.23]# groupadd mysql
[root@localhost mysql-5.6.23]# useradd -r -g mysql mysql
8.修改目錄和文件權限,安裝默認數據庫
[root@localhost mysql-5.6.23]# cd /usr/local/mysql
[root@localhost mysql-5.6.23]# sudo chown -R mysql .
[root@localhost mysql-5.6.23]# sudo chgrp -R mysql .
[root@localhost mysql-5.6.23]# sudo scripts/mysql_install_db --user=mysql
[root@localhost mysql-5.6.23]# chown -R root .
[root@localhost mysql-5.6.23]# chown -R mysql data
至此,mysql就可以啟動運行了。
9.啟動mysql
CentOS7自帶MariaDB的支持,/etc下默認存在my.cnf文件干擾mysql運行,需要先刪掉
[root@localhost mysql-5.6.23]# cd /etc
[root@localhost etc]# rm -fr my.cnf my.cnf.d
然后再/etc下重建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 = .....
# datadir = /data/mysql/data
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for eporting 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
max_connection = 10000
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#binary log
log-bin = mysql-bin
binlog_format = mixed
expire_logs_day = 30
#slow query log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
log-queries-not-using-indexes
log-slow-admin-statements
10.編輯/etc/rc.d/rc.local文件,添加mysql的開機啟動命令。
[root@localhost mysql-5.6.23]# vi /etc/rc.d/rc.loc
到末尾添加:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
然后給/etc/rc.d/rc.local添加可執行權限
[root@localhost mysql-5.6.23]# chmod a+x /etc/rc.d/rc.local
11.修改root密碼
/usr/loca/mysql/bin/mysql -uroot
use mysql;
UPDATE user SET password = PASSWORD('test2015') WHERE user = 'root';
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'passwd2015';
FLUSH PRIVILEGES;
12.缺省源碼安裝的文件路徑
都安裝在/usr/local/mysql文件夾中
bin (客戶端程序和腳本)
include/mysql(包含(頭)文件)
info(Info格式的文檔)
lib/mysql(庫文件)
libexec(mysqld服務器)
share/mysql(錯誤消息文件)
sql-bench(基准程序和crash-me測試)
var(數據庫和日志文件)
13.源碼安裝的優缺點
優點:
可按需定制編譯,最靈活(建立在對linux非常熟悉的基礎上);
性能最好;
一台服務器可以安裝多個MySQL
缺點:
安裝過程交復雜
編譯時間長