centos6 源碼安裝mysql5.6 centos7 源碼安裝mysql5.7

以前的Linux系統中數據庫大部分是mysql,不過自從被sun收購之后,就沒用集成在centos這些開源Linux系統中了,那么如果想用的話就需要自己安裝了,首先centos7 已經不支持mysql,因為收費了你懂得,所以內部集成了mariadb。centos7安裝mysql5.7跟之前的還是有些不一樣的地方容易踩坑 個人廢了些許時間才搞定 現記錄下來 給各位后人參考 避免踩坑!


ccentos6 源碼安裝mysql5.6可參考這篇文章http://blog.csdn.net/hardworking0323/article/details/51227801按步驟走 實測沒有問題


? ? ? ?本文是參考該文章后 修改的?centos7 源碼安裝mysql5.7 的正確步驟

部署環境?

操作系統:CentOS-7x86_64-bin-DVD1.iso

MySQL 版本:mysql-5.7.21.tar.gz ? (ps:此處下載的是源碼包 ?MySQL Community Server 5.7.21 選擇sorce code

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

特別注意:操作之前需要對操作系統進行網絡配置,防火墻關閉(centos7是firewalld),hostname設置,關閉 selinux(請修改/etc/selinux/config,將 SELINUX?改為 disabled)。

? ?? ?? ?? ?? ?? ?? ??此部分操作可參考mysql5.6安裝步驟。

一.卸載mariadb

1.rpm?-qa?|?grep mariadb 檢查數據庫自帶版本

2.rpm?-e?--nodeps mariadb-libs-5.5.37-1.el7_0.x86_64 ?強制卸載

二.創建用戶跟相關文件目錄

1、新增?mysql?用戶組:

?groupadd mysql

2、新增mysql用戶,并添加到mysql用戶組:

#useradd -r -g mysql mysql

3、新建?MySQL?執行文件目錄(后面會把編譯好的?mysql?程序安裝到這個目錄):

#mkdir -p /usr/local/mysql

(-p參數的作用是:如果最終目錄的父目錄不存在也會一并創建)

?4、新建?MySQL?數據庫數據文件目錄:

#?mkdir -p /home/mysql/data

#?mkdir -p /home/mysql/logs

#?mkdir -p /home/mysql/temp

(注意:上面的logs?及temp?目錄是為了以后將MySQL?的數據文件與執行程序文件分離,如果你打算設置到不同的路徑,注意修改對應的執行命令和數據庫初始化腳本。正式生產環?境,建議數據目錄和日志目錄都使用單獨的分區來掛載,不同分區屬于不同的磁盤或磁盤組。)

5、修改mysql目錄擁有者為mysql用戶:

#?chown -Rf mysql:mysql /usr/local/mysql

#?chown -Rf mysql:mysql /home/mysql

?6、增加?PATH?環境變量搜索路徑:?

#vi /etc/profile

##在profile文件末尾增加兩行

# mysql env param

PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

export PATH

使?PATH?搜索路徑立即生效:

#source /etc/profile

三.安裝編譯

1、安裝編譯mysql需要的依賴包

yum install make cmake gcc gcc-c++ bison bison-devel ?ncurses ncurses-devel??autoconf ?automake

2.進入/usr/local/src 下載后解壓源碼壓縮包

wget?https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

tar -zxvfmysql-5.7.21.tar.gz

3.cmake操作前的boost下載解壓

centos7執行cmake指令 會報錯 需要自己下載安裝boost

(1)創建boost目錄?

mkdir -p /usr/local/boost

(2)進入boost目錄后 下載解壓 ?

cd?/usr/local/boost

wget --no-check-certificate http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

tar -zxvf?boost_1_59_0.tar.gz

3.進入mysql源碼解壓目錄 編譯安裝

1、進入加壓目錄?

cd /usr/local/src/mysql-5.7.21

2.執行cmake 指令

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ?-DDEFAULT_CHARSET=utf8 ?-DDEFAULT_COLLATION=utf8_general_ci ?-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 ?-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 ?-DMYSQL_DATADIR=/home/mysql/data ?-DMYSQL_USER=mysql ?-DMYSQL_TCP_PORT=3306 ?-DENABLE_DOWNLOADS=1?

?-DWITH_BOOST=/usr/local/boost

配置解釋:?

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 設置安裝目錄?

-DMYSQL_DATADIR=/home/mysql/data 設置數據庫存放目錄?

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock設置?UNIX socket 目錄

-DMYSQL_USER=mysql 設置運行用戶?

-DDEFAULT_CHARSET=utf8 設置默認字符集,默認?latin1

-DEFAULT_COLLATION=utf8_general_ci 設置默認校對規則,默認?latin1_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 添加?InnoDB 引擎支持

-DENABLE_DOWNLOADS=1 自動下載可選文件,比如自動下載谷歌的測試包?

-DMYSQL_TCP_PORT=3306 設置服務器監聽端口,默認?3306

-DSYSCONFDIR=/etc 設置?my.cnf 所在目錄,默認為安裝目錄)?

cmake?結束后開始編譯源碼,這一步時間會較長,請耐心等待

3. 安裝編譯的源碼?

? make install

(注意:如果需要重裝mysql,在/usr/local/src/mysql-5.6.22在執行下make install?就可以了,不需要再cmake?和make)

4. 清除臨時文件

?make clean

四.配置啟動文件及環境變更

1.從模板文件復制啟動文件

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

2.修改啟動文件:

vim /etc/init.d/mysqld

找到如下二行:

basedir=datadir=

修改為:

basedir=/usr/local/mysql/datadir=/home/mysql/data

3.創建my.cnf ?mysql5.7后 模板文件 沒有my.cnf配置文件 需要自己創建

touch ?/etc/my.cnf

#vi /etc/my.cnf

[client]

port=3306

#socket=/usr/local/mysql/mysql.sock

socket=/tmp/mysql.sock

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

skip-external-locking

skip-name-resolve

user=mysql

port=3306

basedir=/usr/local/mysql

datadir=/home/mysql/data

#server_id=...

#socket=/usr/local/mysql/mysql.sock

socket=/tmp/mysql.sock

log-error=/home/mysql/logs/mysql_error.log

pid-file=/home/mysql/mysql.pid

open_files_limit=10240

back_log=600

max_connections=500

max_connect_errors=6000

wait_timeout=605800

#open_tables=6000

#table_cache=650

#opened_talbes=630

max_allowed_packet=32M

sort_buffer_size=4M

join_buffer_size=4M

thread_cache_size=300

query_cache_type=1

query_cache_size=256

query_cache_limit=2M

query_cache_min_res_unit=16K

tmp_table_size=256M

max_heap_table_size=256M

key_buffer_size=256M

read_buffer_size=1M

read_rnd_buffer_size=16M

bulk_insert_buffer_size=64M

lower_case_table_names=1

default-storage-engine=INNODB

innodb_buffer_pool_size=512

innodb_log_buffer_size=32M

innodb_log_file_size=128M

innodb_flush_method=O_DIRECT

##########################

thread_concurrency=32

long_query_time=2

slow-query-log=on

slow-query-log-file=/home/mysql/logs/mysql-slow.log

[mysqldump]

quick

max_allowed_packet=32M

[mysql_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

其中innodb_buffer_pool_size的大小為分配內存的三分之一到二分之一

四.啟動mysql 并設置

1、啟動mysql服務

service mysql start

ps:?此處可能報錯?/home/mysql/logs/mysql_error.log 這個文件不存在 ?需要自己創建 并授權

也可以 systemctl start mysqld 啟動mysql 但不會有提示

2.設置開機啟動

chkconfig mysql on

或者

systemctl enable mysqld

3.查看root初始密碼 并修改

cat ?/home/mysql/logs/mysql_error.log |grep 'A temporary password'

可查詢出初始密碼 5.7后不再支持使用空密碼登錄 需要先查詢生成密碼

4.登錄修改初始化密碼

mysql -u root -p ?輸入初始化密碼

登錄后執行以下命令

alert user 'root'@'localhost' identified by 'your password';

5.允許root遠程登錄,設置遠程登錄密碼

mysql>?GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH ?GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql>?FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

注意:真實生產環境,應用操作不要使用root用戶操作

6.運行安全設置腳本,強烈建議生產服務器使用(可選)

[root@edu-mysql-01~]#/usr/local/mysql/bin/mysql_secure_installation?


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容