在CenteOs7上安裝mysql8.0
- 為什么用Mysql8.0?
- 如何下載
- 下載地址
- 需要提前準備
- 下載步驟
- 服務器上安裝
- 如何上傳到服務器?
- 通過wget下載到服務器并解壓
- 開始安裝
- 非必須安裝
- 如果全部安裝執行順序
- 安裝完后,啟動mysql
- 使用“systemctl”檢測mysqld服務狀態:
- 啟動mysql服務:
- 再次查看mysqld服務的狀態:
- 設置系統啟動時自動啟動mysql服務:
- 修改mysql密碼
- 查看mysql root的原始密碼:
- 修改密碼
- 驗證修改后的密碼進行登錄
- 允許用戶遠程登錄
- 這里我們需要將root用戶允許遠程登錄
- 修改允許遠程登錄,并刷新配置
- 線上服務器請開啟3306端口允許。
- 參考文章
為什么用Mysql8.0?
??目前很多服務器上部署的都是5.7版本,但是Mysql目前都出到9.0了,有的人說新的不穩定等等…但是8.0以上版本性能有了質的飛躍,我覺得可以嘗試。性能才是真理。當然老系統運行穩定就不建議升級了。
如何下載
下載地址
??mysql官網下載地址
需要提前準備
#openssl
yum install openssl-devel -y
#net-tools
sudo yum install perl net-tools
下載步驟
服務器上安裝
如何上傳到服務器?
1、可以在本地下載好后通過文件傳輸。這里就不細講了。
2、直接通過wget下載到服務器
通過wget下載到服務器并解壓
#創建文件夾mkdir /usr/local/mysql#進入創建的文件夾cd /usr/local/mysql#通過wget下載文件wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.38-1.el7.x86_64.rpm-bundle.tar
這里我們下載的時候捆綁包。我們先解壓。
tar -xvf mysql-8.0.38-1.el7.x86_64.rpm-bundle.tar
解壓后得到如下安裝包
開始安裝
??這里的安裝順序我們按照官方文檔給的來,依次安裝防止出錯。當然有些是非必須的。
非必須安裝
rpm -ivh mysql-community-libs-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-test-8.0.26-1.el8.x86_64.rpm
如果全部安裝執行順序
rpm -ivh mysql-community-common-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-compat-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-debuginfo-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.38-1.el7.x86_64.rpm --nodeps --force
安裝完后,啟動mysql
使用“systemctl”檢測mysqld服務狀態:
??這個時候狀態一般是inactive(不活動的)
systemctl status mysqld
啟動mysql服務:
systemctl start mysqld
再次查看mysqld服務的狀態:
systemctl status mysqld
設置系統啟動時自動啟動mysql服務:
systemctl enable --now mysqld
修改mysql密碼
查看mysql root的原始密碼:
cat /var/log/mysqld.log
修改密碼
??這里我們先用原始密碼登錄進去,執行命令后要求數據密碼,我們將初始密碼輸入進去。登錄成功后修改密碼。
mysql -uroot -p
??大家先按照這個去修改,因為如果首次登錄不修改密碼,是不能進行任何操作的。而且8.0的密碼策略有點變態啊,一般的密碼無法滿足要求,這里的話我們就直接copy下面的代碼,先將密碼修改了,接著我們再去修改密碼設置策略。
ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';
接著我們去修改密碼的強度為低就可以了
set global validate_password.policy=LOW;
然后我們通過ALTER USER 命令將密碼修改成自己想要的就好了。
驗證修改后的密碼進行登錄
允許用戶遠程登錄
這里我們需要將root用戶允許遠程登錄
#查看root賬號的ip訪問權限(執行結果:localhost和127.0.0.1,是無法從外部連接的)
SELECT host FROM mysql.user WHERE User = 'root';
修改允許遠程登錄,并刷新配置
不建議這么做,我們一般是創建一個新的用戶,并在業務環境中只單獨對這個用戶賦予某個數據庫的權限。
#推薦使用
ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';
#修改
UPDATE user SET Host = '%' WHERE User = 'root';
#刷新
FLUSH PRIVILEGES;
線上服務器請開啟3306端口允許。
??在服務器上一定要使用復雜密碼!避免數據庫被攻擊。數據安全是大事!
# 這里是添加一個新用戶允許遠程登錄。
CREATE USER 'my_name'@'%' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON *.* TO 'my_name'@'%';
FLUSH PRIVILEGES;
#查詢服務器是否開啟3306端口
sudo firewall-cmd --query-port=3306/tcp
#開啟3306端口sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
#立即刷新
sudo firewall-cmd --reload
#再次查看狀態
sudo firewall-cmd --query-port=3306/tcp
??由于我的系統是虛擬上安裝的,導致部分依賴,需要自己安裝。
??同時希望大家可以反饋一下安裝過程遇到的問題,我這邊可以回答并更新這篇文章。
systemctl restart mysqld
參考文章
centos7 安裝mysql8