上篇中2G內存服務器安裝sql server失敗了,這里我嘗試使用mysql進行數據存儲,簡單點,直接用yum命令安裝(在CentOS下,可以直接通過yum命令來安裝數據庫);在CentOS7中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB。
1、創建mysql下載及安裝目錄(/usr/local/mysql)
2、添加安裝包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3、安裝/啟動
#安裝 sudo yum -y install mysql-community-server #啟動服務 sudo systemctl start mysqld #查看版本信息 mysql -V
4、鏈接mysql並設置root密碼
#1、查看MySQL為Root賬號生成的臨時密碼 grep "A temporary password" /var/log/mysqld.log #2、進入MySQL shell mysql -u root -p #3、修改密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd123!';
5、開放端口(供遠程鏈接mysql使用)
#開放端口 firewall-cmd --add-port=3306/tcp --permanent #重新加載防火牆設置 firewall-cmd --reload
報錯,提示防火牆未運行,基於安全考慮,還是開啟防火牆比較好;
①查看防火牆狀態(systemctl status firewalld):目前是dead
②開啟防火牆(systemctl start firewalld),關閉防火牆命令為:systemctl stop firewalld;
查看開放端口:firewall-cmd --list-ports
開啟之后再執行開放端口命令,開啟成功之后,重新加載一次防火牆設置
6、創建數據庫及為該數據庫配置遠程訪問賬號(mysql80版本后不允許grant在授權的時候隱式創建用戶,必須先創建用戶)
#新建本地用戶 CREATE USER 'test'@'localhost' IDENTIFIED BY 'Test@123456'; #新建遠程用戶 CREATE USER 'test'@'%' IDENTIFIED BY 'Test@123456'; #新建數據庫 CREATE DATABASE testdb; #賦予指定賬戶指定數據庫遠程訪問權限 GRANT ALL PRIVILEGES ON testdb.* TO 'test'@'%'; #賦予指定賬戶對所有數據庫遠程訪問權限 GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'; #賦予指定賬戶對所有數據庫本地訪問權限 GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost'; #刷新權限 FLUSH PRIVILEGES;
7、使用新創建的用戶(已授權遠程訪問的用戶),navicat for mysql遠程鏈接:
百度查找了下,出現這種情況的原因是:mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password,
那么直接修改登錄用戶的加密規則即可:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;#修改加密規則 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼 FLUSH PRIVILEGES; #刷新權限
再次使用navicat鏈接,成功!
參考資料