手把手教你部署一套生產級的MySQL數據庫
一、摘要
實際的軟件項目開發過程中,不可避免的需要用到關系型數據庫,比較主流的關系型數據庫有 mysql、oracle、sql server、postgresql、db2 等等,當然目前最主流的數據庫非 mysql 莫屬,相比其他數據庫,mysql 性能可靠,使用簡單,而且開源免費。
在我們平時開發的時候,以個人 windows 操作系統為例,我們只需要下載一個 mysql 的安裝包,然后傻瓜式的安裝就可投入使用,但是實際上生產環境往往不是 windows 系統,而是 centos 系統。
那么在 CentOS 系統中,我們應該如何安裝一款 Mysql 數據庫呢?
今天我們就一起來了解一下如何在 centos 操作系統上安裝一款生產級的 mysql 數據庫,希望能幫助到大家!
鑒于目前最主流的項目部署環境,本次選型的操作系統版本號和 mysql 版本號如下:
- CentOS 操作系統版本號:7.6
- Mysql 操作系統版本號:5.7.38
具體安裝實施步驟如下!
二、實施流程
2.1下載 MySQL5.7 的 rpm 安裝包
訪問https://dev.mysql.com/downloads/?mysql 官方社區版本的下載地址,選擇MySQL Community Server,按照下面的步驟依次操作。
2.2卸載已安裝的MySQL(如果沒安裝過,可以跳過)
檢查是否有安裝過 mysql;
#輸入如下命令,檢查是否安裝了mysql
rpm -qa |grep mysql
按照順序,依次卸載服務;
#卸載之前請先關閉 mysql 服務,命令如下
systemctl stop mysqld
#依次卸載相關服務
rpm -e --nodeps mysql-community-server
rpm -e --nodeps mysql-community-client
rpm -e --nodeps mysql-community-libs
rpm -e --nodeps mysql-community-common
清理依賴的文件;
#刪除數據庫配置文件
rm -rf /etc/my.cnf
#刪除數據庫數據文件
rm -rf /var/lib/mysql
#刪除日志臨時文件
rm -rf /var/log/mysqld.log
2.3MySQL 安裝環境準備
檢查是否安裝了mariadb,如果已安裝,需要卸載;
CentOS7 版本默認是已安裝 mariadb,CentOS6 本本默認是已安裝 Mysql,可以安裝上面步驟卸載。
#輸入如下命令,檢查是否安裝了mariadb
rpm -qa | grep mariadb
如果出現如下信息,表示已安裝 mariadb,可以安裝下面步驟進行卸載。
#卸載mariadb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
#再次檢查,是否已經mariadb,如果沒有,表示卸載完畢
rpm -qa | grep mariadb
安裝軟件包所需的依賴;
一般都是最新版了,以防萬一后面安裝出錯,缺少依賴;
yum install libaio -y
yum install net-tools -y
2.4安裝 MySQL 軟件包
將上文中下載的軟件包,上傳到 CentOS 服務器某個文件夾下。
當然,你還可以直接使用wget命令直接在服務器端下載文件,操作步驟如下:
#安裝wget命令
yum install wget
#下載server 包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.38-1.el7.x86_64.rpm
#下載client 包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.38-1.el7.x86_64.rpm
#下載common 包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.38-1.el7.x86_64.rpm
#下載libs 包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.38-1.el7.x86_64.rpm
文件上傳到服務器或者下載到服務器磁盤上之后,我們就可以對 Mysql 進行安裝了。
安裝時必須嚴格遵守安裝順序,依賴關系依次為common → libs → client → server。
#安裝步驟如下:
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm
命令說明:ivh?中, i?表示install?安裝;v?表示verbose?進度條;h?表示hash哈希校驗。
以上 rpm 包安裝完成之后,輸入如下命令,可查詢安裝的 MySQL 版本。
mysqladmin --version
2.5啟停及查詢服務狀態
查詢 MySQL 系統的狀態;
systemctl status mysqld
啟動 MySQL 數據庫;
systemctl start mysqld
關閉 MySQL 數據庫;
systemctl stop mysqld
重啟 MySQL 數據庫;
systemctl restart mysqld
設置開機啟動。
systemctl enable mysqld
# 重載所有修改過的配置文件
systemctl daemon-reload
2.6登錄 MySQL 并修改配置
在 MySQL5.7.4 之前的版本中默認是沒有密碼的,登錄后直接回車就可以進入數據庫,在里面進行設置密碼等操作。其后版本對密碼等安全相關操作進行了一些改變,在安裝過程中,會在安裝日志中生成一個臨時密碼,通過臨時密碼進入之后進行再進行修改。
1.獲取數據庫的臨時密碼命令如下:
grep 'temporary password' /var/log/mysqld.log
2.使用臨時密碼登錄;
#輸入如下命令回車,然后粘貼臨時密碼,再回車
mysql -uroot -p
操作類似如下圖:
3.修改 root 賬戶密碼
輸入如下命令,修改root賬戶密碼;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
以后,如果想要修改密碼,可以通過如下命令實現。
mysql> use mysql;
mysql> update user set password=PASSWORD('new_password') where user='root';
mysql> flush privileges;
注意:mysql 5.7 默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,并且長度不能少于8位。否則會提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 錯誤。
具體可以查看 MySQL 官網密碼詳細策略。
4.添加遠程登錄用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接 mysql,必須添加一個允許遠程連接的帳戶,或者修改 root 為允許遠程連接。
添加一個允許遠程連接的帳戶,方式如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' IDENTIFIED BY 'Zhangsan2018!' WITH GRANT OPTION;
修改 root 為允許遠程連接,方式如下(不推薦):
mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';
mysql> flush privileges;
最后,使用客戶端,輸入服務器 IP、賬戶、密碼,即可登錄 MYSQL 數據庫!
5.設置默認編碼為 utf8(非必需,可以跳過)
mysql 安裝后默認不支持中文,需要修改編碼。
修改/etc/my.cnf配置文件,在相關節點(沒有則自行添加)下添加編碼配置,如下:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
最后,重啟 mysql 服務,查詢編碼,可以看到已經改過來了。
shell> systemctl restart mysqld
shell> mysql -uroot -p
mysql> show variables like 'character%';
默認配置文件路徑如下:
- 配置文件:/etc/my.cnf
- 日志文件:/var/log/var/log/mysqld.log
- 服務啟動腳本:/usr/lib/systemd/system/mysqld.service
- socket文件:/var/run/mysqld/mysqld.pid
三、小結
本文主要圍繞如何在 CentOS 操作系統上安裝部署 Mysql 數據庫,希望能幫助到大家!