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