前言
近期項(xiàng)目需要搭配mysql一起存儲(chǔ)相關(guān)數(shù)據(jù),但對(duì)mysql的版本有要求,于是在服務(wù)器搭建了mysql5.7,順便記錄一下搭建步驟和踩坑解決步驟。
目錄
前言
一、清除舊安裝包
二、安裝YUM
三、使用yum命令即可完成安裝
四、重新設(shè)置密碼
五、創(chuàng)庫(kù)
六、項(xiàng)目連接數(shù)據(jù)庫(kù)
一、清除舊安裝包
1、查看系統(tǒng)中是否已安裝 MySQL 服務(wù)
rpm -qa | grep mysql
或
yum list installed | grep mysql
或
apt-cache search mysql
(命令不同,取決于你用哪個(gè)linux系統(tǒng),以下操作我用centos7搭建)
2、如果已安裝則刪除 MySQL 及其依賴(lài)的包
yum -y remove mysql-libs.x86_64
二、安裝YUM
1、下載 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源
下載命令:
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
2、然后進(jìn)行repo的安裝:
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
執(zhí)行完成后會(huì)在/etc/yum.repos.d/目錄下生成兩個(gè)repo包:
mysql-community.repo
mysql-community-source.repo
Linux的配置文件為/etc/my.cnf
(windows的配置文件為my.ini)
三、使用yum命令即可完成安裝
注意:必須進(jìn)入到 /etc/yum.repos.d/目錄后再執(zhí)行以下腳本(這里我沒(méi)在此目錄中安裝,最后安裝完沒(méi)有client.cnf兩個(gè)文件,可能是這個(gè)原因)
安裝命令:
yum install mysql-server
(此時(shí)會(huì)有一個(gè)報(bào)錯(cuò),說(shuō)安裝失?。?/span>
報(bào)錯(cuò)一:如果遇到安裝不成功,提示:The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
原因:
軟件開(kāi)發(fā)商在釋出 RPM 文件時(shí),會(huì)在其中添加數(shù)字簽名,并釋出用于驗(yàn)證數(shù)字簽名的公鑰。使用 rpm 安裝軟件時(shí),rpm 會(huì)首先根據(jù)系統(tǒng)中已有的公鑰去驗(yàn)證 RPM 文件的數(shù)字簽名。gpg keys 就是公鑰。
解決:
1、yum添加–nogpgcheck
yum安裝的時(shí)候就會(huì)校驗(yàn)軟件包是否是官方發(fā)布的。當(dāng)然可以給yum添加–nogpgcheck來(lái)強(qiáng)制安裝,如下命令即可
yum install mysql-server --nogpgcheck
所以在安裝的時(shí)候會(huì)比對(duì)已有的公鑰,發(fā)現(xiàn)不正確,報(bào)錯(cuò)了
2. 啟動(dòng)msyql:
systemctl start mysqld #啟動(dòng)MySQL
3、獲取安裝時(shí)的臨時(shí)密碼(在第一次登錄時(shí)就是用這個(gè)密碼):
grep 'temporary password' /var/log/mysqld.log
4、登錄mysql
mysql -u root -p
然后輸入密碼(剛剛獲取的臨時(shí)密碼)
————————————————
如果登錄mysql時(shí)再發(fā)現(xiàn)報(bào)錯(cuò)(報(bào)錯(cuò)ERROR 1045),
參考這個(gè)鏈接
CentOS7下安裝mysql5.7(親測(cè)完成)_mysql5.7 centos7-CSDN博客
————————————————
四、重新設(shè)置密碼
如果你想要設(shè)置一個(gè)簡(jiǎn)單的測(cè)試密碼的話(huà),比如設(shè)置為123456,會(huì)提示這個(gè)錯(cuò)誤,報(bào)錯(cuò)的意思就是你的密碼不符合要求:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這個(gè)其實(shí)與validate_password_policy的值有關(guān)。
validate_password_policy有以下取值:
默認(rèn)是1,即MEDIUM,所以剛開(kāi)始設(shè)置的密碼必須符合長(zhǎng)度,且必須含有數(shù)字,小寫(xiě)或大寫(xiě)字母,特殊字符。
有時(shí)候,只是為了自己測(cè)試,不想密碼設(shè)置得那么復(fù)雜,譬如說(shuō),我只想設(shè)置root的密碼為123456。
必須修改兩個(gè)全局參數(shù):
首先,修改validate_password_policy參數(shù)的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
validate_password_length(密碼長(zhǎng)度)參數(shù)默認(rèn)為8,我們修改為1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
完成之后再次執(zhí)行修改密碼語(yǔ)句即可成功
mysql> alter user 'root'@'localhost' identified by '654321';
Query OK, 0 rows affected (0.00 sec)
重新啟動(dòng)MySQL服務(wù)
systemctl start mysqld #啟動(dòng)MySQL
進(jìn)入MySQL
出現(xiàn)密碼輸入時(shí),不用輸入直接按回車(chē),就可以不用密碼就能登錄
mysql -u root -p
密碼直接回車(chē)
五、創(chuàng)庫(kù)
創(chuàng)建新的數(shù)據(jù)庫(kù)后,就可以給新庫(kù)設(shè)置單獨(dú)的用戶(hù)和密碼
舉個(gè)例子:
為Confluence創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)、用戶(hù)名和密碼
mysqld [(none)]>?create database confluence default?character set?utf8 collate utf8_bin;Query?OK,?1?row affected (0.00?sec)
mysqld [(none)]>?grant all on confluence.*?to 'confluence'@'%'?identified by?'confluencepasswd';Query?OK,?0?rows affected (0.00?sec)
mysqld [(none)]>?flush privileges;Query?OK,?0?rows affected (0.00?sec)
第二個(gè)報(bào)錯(cuò):設(shè)置密碼時(shí)報(bào)錯(cuò)
在第二步在mysql中給confluence設(shè)置密碼時(shí)會(huì)有報(bào)錯(cuò),提示密碼不和要求,需要設(shè)置密碼的驗(yàn)證強(qiáng)度等級(jí),設(shè)置 validate_password_policy 的全局參數(shù)為 LOW 即可,
進(jìn)入mysql中,輸入設(shè)值語(yǔ)句 “ set global validate_password_policy=LOW; ” 進(jìn)行設(shè)值即可解決。
六、項(xiàng)目連接數(shù)據(jù)庫(kù)
在連接數(shù)據(jù)庫(kù)時(shí)可能會(huì)有兩種報(bào)錯(cuò),這里也用confluence舉例,一種是說(shuō)字符集不是utf8(我當(dāng)時(shí)用kali自帶的數(shù)據(jù)庫(kù)配置的,連接不上,最后還是用centos7安裝mysql避坑的),一種是下面這種問(wèn)題:
SQLState - 08S01 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 2 milliseconds ago. The last packet sent successfully to the server was 2 milliseconds ago(解決辦法如下):
第三個(gè)報(bào)錯(cuò):Mysql:SQL 錯(cuò)誤 [08S01]: Communications link failure, Bad handshake,idea 連接mysql,報(bào)08S01,
原因大致如下:
在5.7.28之后,useSSL是true,這個(gè)需要配置SSL證書(shū)
因?yàn)榇税姹局笠呀?jīng)默認(rèn)支持 SSL,所以連接實(shí)際應(yīng)用會(huì)使用 SSL
解決方法:
mysql的配置文件/etc/my.cnf的[mysqld] 下面添加
skip_ssl
或者
ssl=0
完美解決問(wèn)題,測(cè)試連接成功!
參考:
Mysql:SQL 錯(cuò)誤 [08S01]: Communications link failure, Bad handshake,idea 連接mysql,報(bào)08S01,_08s01 sql-CSDN博客
也有其他方法,可參考下面這個(gè)連接(但我嘗試了依然沒(méi)繞過(guò)此問(wèn)題):文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-817195.html
https://cloud.tencent.com/developer/article/1650141文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-817195.html
到了這里,關(guān)于[親測(cè)有效]CentOS7下安裝mysql5.7的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!