本文主要介紹了阿里雲CentOS7如何安裝MySql8.0,並對所踩的坑加以記錄;
環境、工具、准備工作
- 服務器:阿里雲CentOS 7.4.1708版本;
- 客戶端:Windows 10;
- SFTP客戶端:FileZilla;用來進行文件傳輸;
- SSH工具:Putty;用來在Windows 上遠程訪問CentOS;
- 下載文件;
因為最新的CentOS7放棄了對MySQL的支持,所以需要我們到MySql官網下載mysql的repo源(官方地址)默認下載第一個就行;
開始安裝MySql8.0
1.環境初始化
使用putty連接阿里雲CentOS;並根據相關提示輸入賬戶密碼登錄即可(建議以root權限登錄)如下圖:
如果服務器原來有安裝MySQL請先卸載清除;
使用下面命令查找出當前服務器安裝的MySql的安裝和依賴包名稱;如果你的阿里雲是新的,請跳過刪除環節;
rpm -pa | grep mysql
使用刪除命令依次刪除上面命令查詢出的結果;我的服務器是新的,所以並沒有安裝和依賴包;
yum remove mysql-xxx-xxx
mysql-xxx-xxx 指的是你用rpm -pa | grep mysql查詢出來的結果的完整名稱;
用如下命令查找到配置文件所在路徑;
find / -name mysql
因為是新服務器,所以並沒有過多的配置信息;
刪除命令,根據你服務器具體情況判斷是否使用;
rm -rf /xxx/xxx/xxx
/xxx/xxx/xxx指的是你用find / -name mysql查詢的完成目錄路徑如:/etc/selinux/targeted/active/modules/100/mysql;
網上很多資料說需要刪除mariadb,阿里雲的CentOS並沒有集成,所以不需要刪除mariadb,如你環境需要,請自行百度;
2.安裝MySql8.0
使用putty或FileZilla工具將你下載的mysql repo文件上傳到Centos系統/usr/local/mysql文件夾下;
putty上傳如下:
pscp mysql源文件的物理地址 root@xxx.xxx.xxx.xxx:/usr/local/mysql/
putty請在Windows的命令行工具中使用pscp命令上傳; xxx.xxx.xxx.xxx指的是阿里雲的服務器地址,mysql的源文件地址是下載到你本機的物理地址;
FileZilla工具上傳如下圖:
使用命令行安裝MySql yum repo文件,並更新緩存信息;
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
使用以下命令清理緩存和臨時文件;
yum clean all
使用命令安裝MySql:
yum install mysql-community-server
等候網絡下載安裝MySql;如果有Is this ok [y/N]: 提示 輸入y就行;
用命令開啟MySQL服務
systemctl start mysqld.service
成功啟動MySQL服務后,用命令打開/var/log/mysqld.log文件;MySQL安裝后會默認創建一個root@locahost賬戶,並把原始密碼存放在mysqld.log文件中;
cat /var/log/mysqld.log | grep password
用上面的密碼登錄MySql;
mysql -u root -p
請注意大小寫及特殊字符;如果有提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)表示你密碼輸入不正確;
登錄成功的第一件事當然是修改密碼了;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';
此處要注意MySQL8.0 修改了密碼規則,必須要有大小寫,數組及特殊字符組成;
提示Query OK, 0 rows affected (0.08 sec)表示修改成功;可以quit命令重新登錄試試;使用如下命令查詢我們的MySql是否安裝正確;
select version();
看到這里,恭喜,你已經成功的將MySql安裝到了阿里雲CentOS7上;
3.使用MySql管理工具訪問MySql
我使用的是SQLYog工具,導航貓的配置也一樣;
使用命令開啟CentOS的防火牆;
systemctl start firewalld.service
開放MySql 3306端口;
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重啟firewall
systemctl restart firewalld.service
將MySql服務加入到開機啟動項,並重啟MySql服務;
systemctl enable mysqld.service
systemctl restart mysqld.service
此時你還無法使用工具訪問MySql,會提示2003錯誤;因為MySQL默認是不能進行遠程訪問的,需要我們去設置,操作如下:
mysql -u root -p;
use mysql;
update user set host='%' where user='root';
授權MySql遠程訪問;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
現在我們嘗試使用工具去連接MySql還是會提示2003錯誤;各種百度后發現是阿里雲安全規則限制;
修改阿里雲的安全規則,開放3306端口;
再次嘗試連接發現提示2058錯誤,上面已經說了,MySql 8.0 以后修改了密碼規則;所以我們得修改一下規則;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼';
你的密碼指的是你重新設置的密碼,一定要符合MySql 8.0的密碼要求;否則會設置失敗;
刷新下權限
FLUSH PRIVILEGES
至此,阿里雲CentOS7安裝MySql8.0 已經結束;
如果這篇博文對你有所幫助,麻煩動動手指點個贊^-^