手把手教你安裝MySQL,你學會了嗎?
本文轉載自微信公眾號「JAVA日知錄」,作者單一色調。轉載本文請聯(lián)系JAVA日知錄公眾號。
在日常開發(fā)學習中不可或少的需要用到MySQL,本文手把手教你如何在Centos7下使用RPM管理包安裝MySQL,閑話少敘,直接開始!
文中MySQL版本為5.7.32
1.安裝服務端下載mysql server端的 rpm 文件
下載地址:https://downloads.mysql.com/archives/community/
選擇版本:mysql-community-server-5.7.32-1.el7.x86_64.rpm
2.上傳至服務器 /app/soft
3.安裝mysql所需要的組件
- yum install libaio (可選)
4.安裝mysql Server
- rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm --nodeps --force
如果不加--nodeps --force 則提示需要安裝客戶端依賴等錯誤
- warning: mysql-community-server-5.7.32-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
- error: Failed dependencies:
- mysql-community-client(x86-64) >= 5.7.9 is needed by mysql-community-server-5.7.32-1.el7.x86_64
- mysql-community-common(x86-64) = 5.7.32-1.el7 is needed by mysql-community-server-5.7.32-1.el7.x86_64
查看是否安裝
- [root@review-dev soft]# rpm -qa | grep mysql
- mysql-community-server-5.7.32-1.el7.x86_64
啟動mysql并查看狀態(tài)
- [root@review-dev soft]# systemctl start mysqld.service -- 啟動
- [root@review-dev soft]# systemctl status mysqld.service -- 查看狀態(tài)
- ● mysqld.service - MySQL Server
- Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
- Active: active (running) since Mon 2021-01-18 11:32:17 CST; 15s ago
- Docs: man:mysqld(8)
- http://dev.mysql.com/doc/refman/en/using-systemd.html
- Process: 7054 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
- Process: 6825 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
- Main PID: 7057 (mysqld)
- CGroup: /system.slice/mysqld.service
- └─7057 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
通過上面我們就安裝好了MySQL的Server端,這時候是無法使用MySQL命令登錄的,還需要安裝一個Client端才行!
安裝客戶端
1.下載mysql client端的 rpm 文件
下載地址:https://downloads.mysql.com/archives/community/
選擇版本:mysql-community-client-5.7.32-1.el7.x86_64.rpm
2.上傳至服務器 /app/soft
3.安裝客戶端
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm --nodeps --force
同理,這里如果不加--nodeps --force 指令還是會出現(xiàn)如下所示的錯誤
- [root@review-dev soft]# rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
- warning: mysql-community-client-5.7.32-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
- error: Failed dependencies:
- mysql-community-libs(x86-64) >= 5.7.9 is needed by mysql-community-client-5.7.32-1.el7.x86_64
安裝完Server和Client端后,還需要修改一些默認配置。
配置
獲取原始密碼
- grep "password" /var/log/mysqld.log
- 2021-01-18T03:32:13.444809Z 1 [Note] A temporary password is generated for root@localhost: r8G>.aGR,GaA
2.使用原始密碼登錄mysql服務器
mysql -uroot -p輸入上面獲取到的密碼回車登錄
3.修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'
其中 ‘new password’ 替換成你要設置的密碼,注意:密碼設置必須要大小寫字母數字和特殊符號(,/';:等),不然不能配置成功。
3.1 修改密碼安全策略 如果出現(xiàn)如下錯誤則說明新密碼不符合密碼策略
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
可通過命令 SHOW VARIABLES LIKE 'validate_password%';查看安全策略
可通過命令修改對應的安全策略,如將密碼等級設置成LOW:set global validate_password_policy=LOW; 如將密碼長度設置成8 set global validate_password_length=6;
mysql 密碼策略相關參數:
1)validate_password_length 固定密碼的總長度;
2)validate_password_dictionary_file 指定密碼驗證的文件路徑;
3)validate_password_mixed_case_count 整個密碼中至少要包含大/小寫字母的總個數;
4)validate_password_number_count 整個密碼中至少要包含阿拉伯數字的個數;
5)validate_password_policy 指定密碼的強度驗證等級,默認為 MEDIUM;
6)validate_password_special_char_count 整個密碼中至少要包含特殊字符的個數;
關于 validate_password_policy 的取值:
LOW:只驗證長度;
MEDIUM:驗證長度、數字、大小寫、特殊字符;
STRONG:驗證長度、數字、大小寫、特殊字符、字典文件;
4.新增遠程登錄用戶
- create user 'xxxxxx'@'%' identified by 'password';
- GRANT ALL PRIVILEGES ON *.* TO 'xxxxxx'@'%' identified by password';
- flush privileges;
5.mysql默認語言為utf8mb4
默認情況下MySQL使用的語言是latinl,可在登錄mysql服務的情況下使用status指令查看,需要將其修改成主流的utf8mb4
先退出mysql,然后再到/etc目錄下的my.cnf文件下新增以下內容(見紅框)
- vi /etc/my.cnf
修改完成后重啟mysql
- systemctl restart mysqld.service
重新登錄mysql,再次查看狀態(tài)
通過上面幾步,我們已經可以使用MySQL進行開發(fā)測試了,但是此時的MySQL并不能直接用于生產,我們還得修改MySQL服務器的配置參數,提升其性能與吞吐率。
具體參數可參照下面文章進行優(yōu)化配置:
http://javadaily.cn/articles/2019/11/18/1574040329451.html