文章參考以下博客綜合而來:
https://blog.csdn.net/qq_36582604/article/details/80526287
https://www.cnblogs.com/minseo/p/15835416.html
https://www.cnblogs.com/binbinyouni/p/7112195.html
https://blog.csdn.net/wltsysterm/article/details/79649484
在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB。
1. 下載並安裝MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下載了安裝用的Yum Repository,大概25KB的樣子,然后就可以直接yum安裝了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就開始安裝MySQL服務器。
[root@localhost ~]# yum -y install mysql-community-server
這步可能會花些時間,安裝完成后就會覆蓋掉之前的mariadb。
PS: 此安裝可能因為CentOS上使用yum安裝MySQL時報檢索密鑰錯誤,解決方法如下:
使用yum安裝MySQL時報錯 yum -y install mysql mysql-server
yum -y install mysql-community-server
報錯內容如下
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY 從 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 檢索密鑰 源 "MySQL 5.7 Community Server" 的 GPG 密鑰已安裝,但是不適用於此軟件包。請檢查源的公鑰 URL 是否配置正確。 失敗的軟件包是:mysql-community-libs-compat-5.7.37-1.el7.x86_64 GPG 密鑰配置為:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
處理方式有兩種
- 到mysql官網下載校驗文件
- 修改配置跳過校驗
本文記錄第二種方式
編輯文件/etc/yum.repos.d/mysql-community.repo
修改對應安裝版本的gpgcheck=0
即可,默認值為1
[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
再次安裝即可
至此MySQL就安裝完成了,然后是對MySQL的一些設置。
2. MySQL數據庫設置
首先啟動MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL運行狀態,運行狀態如圖:
[root@localhost ~]# systemctl status mysqld.service
此時MySQL已經開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日志文件中找出密碼:
[root@localhost ~]# grep "password" /var/log/mysqld.log
如下命令進入數據庫:
[root@localhost ~]# mysql -uroot -p
輸入初始密碼(是上面圖片最后面的 no;e!5>>alfg),此時不能做任何事情,因為MySQL默認必須修改密碼之后才能操作數據庫:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
其中‘new password’替換成你要設置的密碼,注意:密碼設置必須要大小寫字母數字和特殊符號(,/';:等),不然不能配置成功
3. 開啟mysql的遠程訪問
執行以下命令開啟遠程訪問限制(注意:下面命令開啟的IP是 192.168.0.1,如要開啟所有的,用%代替IP):
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
然后再輸入下面兩行命令
mysql> flush privileges;
mysql> exit
4. 為firewalld添加mysql端口3306和Tomcat端口8080
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
然后再重新載入
[root@localhost ~]# firewall-cmd --reload
5 更改mysql的語言
首先重新登錄mysql,然后輸入status:
可以看到,綠色箭頭處不是utf-8
因此我們先退出mysql,然后再到、etc目錄下的my.cnf文件下修改一下文件內容
進入文件后,新增四行代碼:
保存更改后的my.cnf文件后,重啟下mysql,然后輸入status再次查看,你就會發現變化啦
最后,到Windows下用cmd命令啟動mysql啦!!
6. MySQL 5.7root用戶密碼修改
在MySQL 5.7 password字段已從mysql.user表中刪除,新的字段名是“authenticalion_string”.
選擇數據庫:use mysql;
更新root的密碼:update user set authentication_string=password('新密碼') where user='root' and Host='localhost';
刷新權限:flush privileges;
mysql 5.7 修改密碼,受安全策略影響,會失敗,如下圖
這是由於Mysql5.7默認對於密碼的要求強度較高,設置的密碼過於簡單不予通過。要解決這個問題,涉及到的參數有validate_password_policy和validate_password_length。
validate_password_policy有以下取值:
Policy | Tests Performed |
---|---|
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
0是只要密碼長度符合即可 ;1是必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符;2是必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符,字典文件。默認是1。validate_password_length是設置密碼長度。
所以解決的辦法是:
1、設置密碼安全級別。
2、設置密碼長度
3、更改密碼