標籤:centos mysql 編譯安裝
一、簡介
MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關聯式資料庫管理系統) 應用軟體之一。
MySQL是一種關聯資料庫管理系統,關聯資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。MySQL 軟體採用了雙授權政策,它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
由於其社區版的效能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。
二、準備
1、關閉selinux:
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config
2、安裝相關工具
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
3、軟體下載
下載MySQL:
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16.tar.gz
下載boost:
wget http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar
4、 清理環境(從MySQL 5.7.5開始Boost庫是必需的)
檢查boost版本:
rpm -qa boost*
卸載boost-*等庫:
yum -y remove boost-*
5、卸載系統已經安裝的MySQL
查看安裝的MySQL
rpm -qa|grep -i mysql
卸載安裝的mysql
yum remove mysql
查看剩餘的安裝包
rpm -qa|grep -i mysql
逐個刪除安裝包
rpm -qa|grep -i mysql
rm -rf /etc/my.cnf
rm -rf /usr/share/mysql 或者rm -rf /var/lib/mysql 根據自己環境刪
6、建立mysql使用者, 組及目錄
groupadd mysql
mkdir /usr/local/mysql
mkdir -p /usr/local/mysql/data
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin mysql
二、安裝
1、安裝boost
從MySQL 5.7.5開始Boost庫是必需的,下載Boost庫,在解壓後複製到/usr/local/boost目錄下(然後重新cmake並在後面的選項中加上選項 -DWITH_BOOST=/usr/local/boost)
tar -zxvf boost_1_59_0.tar.gz -C /usr/local/boost
2、編譯安裝MySQL(新版本的mysql用cmake編譯安裝)
tar -zxvf mysql-5.7.16.tar.gz
cd mysql-5.7.16
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-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 \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
常用參數:
CMAKE_INSTALL_PREFIX:指定MySQL程式的安裝目錄,預設/usr/local/mysql
DEFAULT_CHARSET:指定伺服器預設字元集,預設latin1
DEFAULT_COLLATION:指定伺服器預設的校對規則,預設latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允許本地執行LOAD DATA INFILE,預設OFF
WITH_COMMENT:指定編譯備忘資訊
WITH_xxx_STORAGE_ENGINE:指定靜態編譯到mysql的儲存引擎,MyISAM,MERGE,MEMBER以及CSV四種引擎預設即被編譯至伺服器,不需要特別指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不編譯的儲存引擎
SYSCONFDIR:初始化參數檔案目錄
MYSQL_DATADIR:資料檔案目錄
MYSQL_TCP_PORT:服務連接埠號碼,預設3306
MYSQL_UNIX_ADDR:socket檔案路徑,預設/tmp/mysql.sock
3、編譯安裝
make && make install
4、設定許可權並初始化MySQL系統授權表
設定許可權:
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
初始化:
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5、建立設定檔
將預設產生的my.cnf備份
mv /etc/my.cnf /etc/my.cnf.bak
拷貝設定檔範本為新的mysql設定檔
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
可按需修改新的設定檔選項, 不修改配置選項, mysql則按預設配置參數運行.
如下是我修改設定檔/etc/my.cnf, 用於設定編碼為utf8以防亂碼
[mysqld]
character_set_server=utf8
init_connect=’SET NAMES utf8’
[client]
default-character-set=utf8
6、配置mysql服務開機自動啟動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
檢查自啟動項列表中沒有mysqld這個,如果沒有就添加mysqld:
chkconfig –list mysqld
chkconfig –add mysqld
設定MySQL在345等級自動啟動
chkconfig –level 345 mysqld on
或用這個命令設定開機啟動:chkconfig mysqld on #加入開機啟動
vi /etc/init.d/mysqld #編輯
basedir = /usr/local/mysql #MySQL程式安裝路徑
datadir = /usr/local/mysql/data #MySQl資料庫存放目錄
service mysqld start #啟動
vi /etc/profile #把mysql服務加入系統內容變數:在最後添加下面這一行
export PATH=$PATH:/usr/local/mysql/bin
:wq! #儲存退出
7、下面這兩行把myslq的庫檔案連結到系統預設的位置,這樣你在編譯類似PHP等軟體時可以不用指定mysql的庫檔案地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 暫無此檔案
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
8、shutdown -r now #需要重啟系統,等待系統重新啟動之後繼續在終端命令列下面操作
mysql_secure_installation #設定Mysql密碼
根據提示按Y 斷行符號 ,然後輸入2次密碼,繼續按Y 斷行符號,直到設定完成
或者直接修改密碼/usr/local/mysql/bin/mysqladmin -u root -p password “123456” #修改密碼
service mysqld restart #重啟
到此,mysql安裝完成!
9、mysql服務的啟動/重啟/停止
啟動mysql服務 :service mysqld start
重啟mysql服務:service mysqld restart
停止mysql服務:service mysqld stop
訪問mysql資料庫
串連mysql, 輸入初始化產生的隨機密碼
mysql -uroot -p
修改root新密碼如 123456
mysql> alter user ‘root’@’localhost’ identified by ‘123456’;
mysql> quit;
mysql> exit;(與上等效, 都是退出mysql串連)
使用新密碼重新串連mysql
mysql -uroot -p
14.設定遠程能訪問資料庫
使用mysql -h localhost -u root -p登入mysql資料庫 執行
grant all privileges on . to [email protected]’%’ identified by ‘密碼’ 使遠端使用者能夠訪問資料庫 ,執行命令 :flush privileges;
centos下編譯安裝MySQL5.7.16