1. 程式人生 > >Centos7.3.1611安裝mysql5.7.18 rpm教程

Centos7.3.1611安裝mysql5.7.18 rpm教程

零 本人的Linux系統

一 解除安裝MariaDB

CentOS7預設安裝MariaDB而不是MySQL,而且yum伺服器上也移除了MySQL相關的軟體包。因為MariaDB和MySQL可能會衝突,故先解除安裝MariaDB
1. 安裝新版mysql之前,我們需要將系統自帶的mariadb-lib解除安裝

[[email protected] ~]# rpm -qa | grep -i mariadb
 mariadb-libs-5.5.52-1.el7.x86_64
[[email protected] ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

注:詳細解除安裝教程可自行百度,很簡單。

二 到mysql的官網下載最新版mysql的rpm集合包

mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

通過xshell的rz命令將mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar上傳到Linux系統中。


注:我上傳到的路徑 /usr/local/tools

通過mkdir命令建立mysql目錄,放入解壓後的檔案,為以後的安裝做準備。

解壓壓縮包到mysql目錄

四 安裝MySQL解壓包

注:所有解壓包,不一定需要全部安裝、注意安裝順序
以下是安裝順序 這幾個包由依賴關係。執行有先後其中,client依賴於libs,server依賴於common和client.

rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm // <br> 
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm //<br>
rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm<br>
rpm -ivh mysql-community-client-5.7.18-1.el6.x87_64.rpm //客戶端安裝包 <br>
rpm -ivh mysql-community-server-5.7.18-1.el6.x87_64.rpm //服務端安裝包<br>
rpm -ivh mysql-community-devel-5.7.18-1.el7.x87_64.rpm //包含開發用的庫標頭檔案安裝包<br>

注: i-install安裝;v-verbose進度條;h-hash雜湊校驗;安裝過程中可能會出現 perl 環境等問題,按提示百度就行。

五 資料庫初始化

為了保證資料庫目錄為與檔案的所有者為 mysql 登陸使用者,如果你的linux系統是以 root 身份執行 mysql 服務,需要執行下面的命令初始化

[[email protected] mysql]# mysqld --initialize --user=mysql

如果是以 mysql 身份登入執行,則可以去掉 –user 選項。
注: –initialize 選項預設以“安全”模式來初始化,則會為 root 使用者生成一個密碼並將該密碼標記為過期,登陸後你需要設定一個新的密碼
這裡演示使用的 –initialize 初始化的,會生成一個 root 賬戶密碼,密碼在log檔案裡,紅色區域的就是自動生成的密碼

使用 cat /var/log/mysqld.log 命令開啟日誌檔案

六 啟動mysql資料庫

注:systemctl是Centos7特有的啟動方式

systemctl start mysqld.service

七 登入mysql資料庫並建立Mysql新密碼

登入mysql,然後輸入日誌中的隨機密碼。

mysql -u root -p;

設定你的密碼。

set password = password('你的密碼');

設定授權(遠端訪問)

grant all privileges on *.* to 'root' @'%' identified by'你的密碼';

重新整理許可權

flush privileges;

八 其他問題。

如果在初始化時。指定了其他位置的儲存,可以使用

mysqld --initialize --user=mysql --datadir=/data0/data/mysqldb

注:這樣的指定會有其他問題:如 SELinux(CentOS 7 自帶的安全軟體) 操作許可權監控告警而操作被阻止等。

九 SELinux安全操作(未測試,待定)

具體可以參考網上的一些資料去查詢如何配置,這裡僅作一些操作說明。

在安裝或者配置過程中,如果修改啟動連線埠(預設 3306 )、資料儲存路徑(預設 /var/lib/mysql )等會發現啟動、重啟或其他操作會被 SELinux 阻止。SELinux的告警提示中可以發現這些操作是不應該訪問的操作型別,原因在於這些操作沒有被配置為被允許執行的。

如果需要直接關閉這些告警即不阻止,可以這麼做:

setenforce 0 

一般情況下,更多的是配置規則,而不是直接關閉;
如果有視覺化介面的話,可以從 CentOS 的選單中(應用程式 > 雜項 > SELinux 故障排除工具)檢視。

在每個告警中有具體的告警問題,其中具體資訊中有這麼一些提示:

應該將這個情況作為 bug 報告。
可以生成本地策略模組以允許此訪問。
Allow this access for now by executing:
# ausearch -c 'xxxxxx' --raw | audit2allow -M my-xxxxxx
# semodule -i my-xxxxxx.pp

文中提示這裡的 bug 可以配置本地策略解除,執行這些操作就可以進行配置。

不同的配置有不同的方法:

semanage fcontext -a -t mysqld_db_t "/data0/data/mysqldb" 
restorecon -Rv "/data0/data/mysqldb"  

以上可能不能解決 SELinux 的許可權問題,還有很多需要在執行時才會提示的需要後期加入規則中,詳細操作還需百度 SELinux 配置 MySQL。