話說mysql8.0版本比5.7版本要快2倍以上,這么看宣傳怎么能不裝8.0呢,但是新版本和舊版本有不少不同導致若使用以前的一些安裝方法會導致安到一半就由於各種找不到文件卡住。
嘗試了不少次,只有使用yum源安裝的方法成功了,其中還有以boot版本的編譯安裝方法,結果編譯到73%卡住怎么也過不去233
基本按照下面這個博客的教程即可以安裝成功,在此感謝正確且完善的良心教程:
https://blog.csdn.net/qq_35098526/article/details/80077683
以下為以防萬一的copy,
1. wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2. sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3. sudo yum install mysql-server
4. mysql -u root (失敗)
5. sudo chown -R root:root /var/lib/mysql
6. service mysqld restart
grep 'temporary password' /var/log/mysqld.log
7. mysql -u root -p(成功)
8. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';(密碼需要大小寫英文加數字)
以下為使用navicat連接Linux上的mysql的方法。
由於存在防火牆,mysql對應的端口未開放的關系,無法從外部網絡連接。
最簡單的方法是停掉防火牆,但是這樣做不安全,若發現Linux未安裝防火牆,則可以
先以防萬一停止防火牆服務
sudo systemctl stop firewalld.service (service iptables stop)
sudo systemctl disable firewalld.service
重新安裝防火牆
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl enable ip6tables
啟動防火牆
sudo systemctl start iptables
sudo systemctl start ip6tables
查看防火牆狀態,應該是active
service iptables status
查看開放的端口,這里應該沒有mysql的3306端口
netstat -aptn
打開防火牆設置,輸入以下語句並輸入i進入編輯模式
vi /etc/sysconfig/iptables
在Commit語句的上一條的上面加入以下語句開放3306端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
或
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
或
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
(firetabled的情況下)
firewall-cmd --zone=public --add-port=3690/tcp --permanent
重啟防火牆設置
systemctl restart iptables.service
登錄mysql
mysql -u root -p;
切換數據庫
use mysql;
創建全環境用root賬號
create user 'root'@'%' identified by '密碼';
授予root權限
grant all on *.* to root@'%';
使用以下語句解決mysql8.0 authentication plugin 'caching_sha2_password' 的問題
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';
在navicat輸入新連接的主機名,用戶,密碼,連接測試,成功。
若遇到其他問題則繼續度娘咯