以前的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?