第一步:首先你得有阿里云ECS云服務器吧
我相信但凡來的應該都已經購買這項云服務了,但不妨礙我給沒買的小伙伴展示一下,注冊阿里云賬號登錄后,總歸一頓操作你能看到以下頁面。
大概意思就是小白可以使用阿里云推薦的s6這款打包默認配置好的ecs服務器,也貼心的告訴你搭建ecs步驟,點擊開始搭建右下角出現具體操作步驟,創建一臺云服務器在你購買時就一起創建好了,是這樣滴
當然我是自定義選購配置的,沒選它推薦的s6,然后我是按量付費但需要充值100而不是包月,購買好后這個實例就顯示在實例列表里了,此時顯示運行中,那么你就擁有一臺自己的服務器了,但是怎么訪問服務器呢。阿里云提供了很多方式,其中在網頁中就可以連接,往右看看有個遠程連接的link點擊一頓操作相信你會連上的。
但是我用的是xshell ssh工具,連上了
這樣你可以在這臺服務器上為所欲為了,阿里云建議安裝Apache服務測試一下80端口能不能訪問,我跳過了,直接安裝mysql,但是注意它安裝的是mysql57,但我要裝mysql8
第一步:準備安裝文件mysql8
網址:https://dev.mysql.com/downloads/mysql/
然后選它選它選它
然后再點它
下載好后,就開始操作xshell吧,先用 rpm -qa | grep mariadb 命令查看 mariadb 的安裝包
然后 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 命令裝卸 mariadb
卸載完成后,cd /usr/local/ 命令進入根目錄下的usr目錄下的local目錄,ll查看一下當前目錄內容
執行mkdir mysql 命令 在當前目錄下創建一個名為 mysql 的目錄
此時多了一個mysql文件,創建成功,然后 cd mysql 命令進入 mysql 目錄
現在就可以通過xshell上傳mysql8安裝包到服務武器mysql這個目錄下
選擇mysql安裝包右擊傳輸
傳輸完成右側服務器mysql目錄下就有了,然后關閉當前xftp頁面
查看一下ls
tar -xvf mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar 命令解壓 tar 包
通過 rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安裝 common
注意:復制命令到xshell執行時注意空格,別把空格復制進去,容易出錯。
rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安裝 libs
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安裝 client
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安裝 server
rpm -qa | grep mysql 命令查看 mysql 的安裝包
數據庫的初始化和相關配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
執行第一個命令報錯
解決這個問題需執行yum install -y libaio完成后,再次執行mysqld --initialize;成功
執行第二個命令 修改數據庫的屬主和屬組成功。 命令格式:chown 屬主:屬組 文件/文件夾
執行第三個命令 systemctl start mysqld.service;啟動服務報錯
查看mysql配置文件cat /etc/my.cnf 找到mysql日志文件路徑
查看mysql日志文件 the designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it 指定的數據目錄/var/lib/mysql/不可用。您可以刪除服務器添加到其中的所有文件
好吧,執行cd /var/lib/mysql/ 進入這個目錄,然后執行 rm -rf * 全部刪除后,再次運行systemctl start mysqld.service;啟動mysql服務成功
執行第四個命令 systemctl enable mysqld表示開機自啟動
cat /var/log/mysqld.log | grep password 查看數據庫的密碼,因為啟動后會將初始密碼打印到日志文件里
我們先登錄數據庫mysql -uroot -p 敲回車再將剛才的密碼右鍵復制粘貼輸入,注意粘貼后密碼是不會顯示的直接回車即可登錄成功
剛才密碼太復雜,我們修改簡單一點 執行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 命令來修改密碼,結果失敗,root密碼過于簡單不符合mysql要求的安全級別,可以設置validate_password_policy的值將密碼結構變簡單一點,我這由于是生產環境所以還是按照默認的高級別來設置密碼吧,參考原來的密碼格式大小寫字母數組符號等,DogDog2020/這個密碼就可以
exit; 命令退出 MySQL,然后通過新密碼DogDog2020/再次登陸成功
現在用Navicat遠程還不可以訪問,通過以下命令,進行遠程訪問的授權
create user 'root'@'%' identified with mysql_native_password by 'DogDog2020/';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
分別執行成功
設置防火墻,關閉 firewall,依次執行成功
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;
yum -y install iptables-services 命令安裝 iptables 防火墻
通過以下命令啟動設置防火墻
systemctl enable iptables;
systemctl start iptables;
分別執行成功
vim /etc/sysconfig/iptables 命令編輯防火墻,添加端口,默認打開是這樣的
點擊i進入編輯模式,編輯寫入該文件以下內容,然后esc鍵退出編輯模式,然后:wq回車保存退出
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
systemctl restart iptables.service 命令重啟防火墻使配置生效
systemctl enable iptables.service 命令設置防火墻開機啟動
此時看看能不能遠程連接訪問mysql,結果失敗
阿里云服務器實例好像也需要配置安全組訪問規則
此時依然不能訪問,需要設置阿里云實例自帶的防火墻,執行命令firewall-cmd --permanent --zone=public --add-port=3306/tcp開放3306端口,結果失敗顯示防火墻沒有啟動,然后執行命令systemctl start firewalld啟動防火墻,結果也失敗,
解決,執行命令systemctl unmask firewalld后,再次重啟成功
此時執行命令 firewall-cmd --permanent --zone=public --add-port=3306/tcp 開放3306端口就ok了,然后執行命令firewall-cmd --reload 重載防火墻配置
然后我們再次嘗試連接就成功了
好復雜哦,答應我以后再也不裝了。