查看防火牆
systemctl status firewalld
重啓防火牆
systemctl start firewalld
一、mysql
首先關閉防火牆
systemctl stop firewalldhtml
1.1 檢查系統是否已經安裝過mysql
rpm -qa|grep mariadb
若是查詢到結果,證實已經安裝過,必須先卸載java
1.2 卸載mariadb
rpm -e --nodeps mariadb-libsnode
1.3 因爲mysql會產生臨時文件存到/tmp文件夾中,若是使用非root管理員可能沒有權限,會報錯
給tmp文件夾設置全部權限
chmod -R 777 /tmpmysql
1.4 安裝mysql客戶端+服務端【須要先從官網下載這些,而後傳輸到opt文件後再執行安裝】
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
1.5 阿里雲安裝mysql-community-server-8.0.18-1.el7.x86_64.rpm報錯解決辦法sql
報錯以下:數據庫
[root@localhost upload]# rpm -ivh MySQL-server-5.5.25a-1.rhel5.x86_64.rpm
error: Failed dependencies:
libaio.so.1()(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64vim
解決辦法:服務器
網站百度了不少個文章,都不行,後來發現有一篇文章寫的方法能夠,命令以下:
yum install libaio
這樣就ok了,就能夠繼續安裝mysql了。
參考
http://www.blogjava.net/amigoxie/archive/2013/02/22/395605.htmltcp
二、mysql配置
2.1使用mysql以前,須要啓動mysql服務:
systemctl start mysqld測試
2.2獲取默認密碼
grep "A temporary password is generated for root@localhost" /var/log/mysqld.log
2.3登陸
mysql -u root -p回車 而後輸入密碼
2.4修改密碼(容許設置成簡單密碼)
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER "root"@"localhost" IDENTIFIED BY "1234"; // 新密碼爲1234
2.5退出
exit;
2.6用新密碼登陸
mysql -u root -p 回車
輸入密碼 回車
2.7 遠程鏈接mysql的權限
選中數據庫
use mysql;
查看全部用戶
select user,authentication_string,host from user;
默認都是localhost
update user set host = '%' where user = 'root';
更改加密規則【目的是容許使用簡單密碼】
update user set plugin='mysql_native_password' where user ='root';
刷新
FLUSH PRIVILEGES;
測試外網鏈接mysql服務器
(若是外網鏈接失敗的話,先按照【重置密碼】執行一遍,再執行【修改密碼語句,而且須要替換語句內容】,
只是ALTER USER "root"@"localhost" IDENTIFIED BY "1234";
要替換成ALTER USER "root"@"%" IDENTIFIED BY "1234";)
三、重置密碼
3.1開啓免密碼登錄 修改my.cnf文件 默認在/etc/my.cnf。
vim /etc/my.cnf
在【mysqld】模塊下面添加:skip-grant-tables 保存退出。
3.2重啓服務,使配置生效
systemctl restart mysqld
3.3登錄
mysql -u root -p //不輸入密碼直接敲回車鍵
3.4選擇數據庫
use mysql把密碼置空(由於免密登錄時不能直接修改密碼)
update user set authentication_string = '' where user = 'root';
3.5退出
exit;
3.6把/etc/my.cnf免密刪掉。
3.7重啓服務
systemctl restart mysqld
3.8登錄
mysql -u root -p //直接敲回車鍵,由於剛剛置空密碼了。
3.9和上面修改密碼的步驟同樣,重複一遍就行了~ 哈哈! set global validate_password.policy=0; set global validate_password.length=1; ALTER USER "root"@"%" IDENTIFIED BY "1234";開啓防火牆(容許特定端口號經過)firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload