1. 程式人生 > >學習筆記-centos7.4下mysql編譯安裝

學習筆記-centos7.4下mysql編譯安裝

word 權限 option bak sta net gem 字符集 sets

編譯安裝MySQL

註釋:編譯mysql的時候會比較耗資源,建議在虛擬機下把內存提升到1-2G

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫

源碼包下載地址:
下載地址:
http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

MySQL從5.7版本之後,boost是必須的,建議把系統自帶的boost庫卸載,源碼編譯安裝高版本
[root@localhost ~]# yum -y remove boost-*
卸載系統自帶的mysql
[root@localhost ~]# yum -y remove mysql
把開發包安裝組裝上:
[root@localhost ~]# yum groupinstall "Development Tools" "Development Libraries" –y

解決依賴環境
[root@localhost ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel autoconf automake zlib zlib-devel openssl openssl-devel pcre*
創建運行用戶:
[root@localhost~]# groupadd mysql
[root@localhost~]# useradd -M -s /sbin/nologin -r -g mysql mysql
解壓源碼包:
[root@localhost ~]# unzip -j LAMP_for_centos7.4.zip

[root@localhost ~]# tar xf mysql-boost-5.7.19.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/mysql-5.7.19/
[root@localhost mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-5.7.19/boost/boost_1_59_0 && make && make install
make -j 4 #註:-j 用來指定CPU核心數,可加快編譯速度。 加 -j 4我用4核心來編譯的,可以提高編譯速度;當然你要確定CPU多少核心
查看服務器CPU核心數
[root@localhost mysql-5.7.19]# grep processor /proc/cpuinfo | wc -l
1
這些編譯參數的幫助尋找方法:
http://www.mysql.com→→Documentation→→選擇對應的版本(5.7)Installation & Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options
最終的URL https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

DCMAKE_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
修改目錄權限
[root@localhost mysql-5.7.19]# chown -R mysql:mysql /var/lib/mysql/

生成配置文件
備份配置文件
[root@localhost mysql-5.7.19]# mv /etc/my.cnf{,.bak}
自行創建my.cnf配置文件
[root@localhost mysql-5.7.19]# vim /etc/my.cnf
[mysqld]
basedir=/var/lib/mysql 安裝路徑
datadir=/var/lib/mysql/data 數據庫存放目錄
port=3306 指定端口
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 字符集
log-error=/var/log/mysqld.log 錯誤日誌
#pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

生成啟動腳本:
[root@localhost ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chmod +x !$
chmod +x /etc/init.d/mysqld
[root@localhost ~]# chkconfig --add mysqld
[root@localhost ~]# chkconfig mysqld on
刪除數據目錄下的文件:
[root@localhost ~]# cd /var/lib/mysql/data/
[root@localhost data]# rm -rf *

初始mysql
[root@localhost data] /var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data

配置環境變量
[root@localhost ~]# vim /etc/profile
export MYSQL_HOME=/var/lib/mysql
export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
[root@localhost ~]# source /etc/profile
或:
[root@localhost ~]# ln -s /var/lib/mysql/bin/* /usr/local/bin/
啟動服務:
[root@localhost data]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
登錄報錯:
[root@localhost ~]# mysql
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
解決:找到mysql的安裝路徑,進到路徑裏面登錄MySQL
[root@localhost support-files]# cd /var/lib/mysql/bin/
[root@localhost bin]# ./mysql -p
Enter password:
mysql> set password for ‘root‘@‘localhost‘ =password(‘‘);
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

重新登錄測試:
[root@localhost ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@localhost ~]# mysql
mysql>

學習筆記-centos7.4下mysql編譯安裝