CentOS7 卸載與安裝mysql,開遠程訪問權限

接了個任務,在公司的服務器上安裝mysql,並允許遠程登錄。在這裏做一下記錄,以便後續使用。

首先查看當前機器上是否有安裝mysql,在命令行中輸入:mysql --version,如果有顯示在這裏插入圖片描述
則代表當前安裝的是 mysql5.6.44 的版本。

注意,如果是8.0以後的版本,遠程權限設置略有不同

一、卸載

1、卸載掉安裝的部分

首先執行查看命令,看一下已經安裝的:

[root@localhost ~]# rpm -qa |grep -i mysql

在這裏插入圖片描述

2、執行卸載命令

[root@localhost ~]# yum remove mysql-community mysql-community-server mysql-community-libs mysql-community-common mysql-community-client mysql-community-release

再進行一遍檢查:rpm -qa |grep -i mysql,確定安裝部分已完全卸載掉。

3、清理剩餘文件

3.1 查看mysql文件目錄:
[root@localhost ~]# find / -name mysql

在這裏插入圖片描述
將這些文件全部刪除。

3.2 刪除掉安裝日誌文件:
[root@localhost ~]# rm -f /var/log/mysqld.log

否則下次你會找不到安裝密碼的。

3.3 刪除歷史記錄:
[root@localhost ~]# rm -rf /var/lib/mysql 

這一條極其重要,如果你安裝後發現在/var/log/mysqld.log沒有密碼的話,就執行這一句吧!然後重啓mysql(systemctl restart mysqld)

二、安裝

由於最新版本的linux系統開始,默認的是Mariadb,而不是mysql,所以需要先去mysql的官方庫裏下載mysql的repo源,然後再執行安裝操作。

1、下載mysql的repo源,並安裝

下載mysql的repo源
[root@localhost ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

再執行安裝命令
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

2、安裝mysql

[root@localhost ~]# yum install mysql-server
根據步驟安裝就可以了,不過安裝完成後,沒有密碼,需要重置密碼。安裝後再次查看mysql

3、登錄

[root@localhost ~]# mysql -u root
首次登錄時會報出錯誤,原因是/var/lib/mysql的訪問權限問題。下面的命令把/var/lib/mysql的擁有者改爲root用戶:
[root@localhost ~]# chown root /var/lib/mysql
再次執行登錄數據庫命令:mysql -u root 即可登入數據庫。

小技巧:
MySQL5.7加強了root用戶的安全性,因此在第一次安裝後會初始化一個隨機密碼,以下爲查看初始隨機密碼的方式
命令: grep ‘temporary password’ /var/log/mysqld.log


如果這一步不行的話,可參考 https://www.cnblogs.com/kynewu/p/8995749.html ,使用skip-grant-tables 修改密碼

4、修改安裝時的默認隨機密碼

在第3步登入數據庫的前提下

mysql> use mysql; 
mysql> update user set password=password('yourpassword') where user='root' and host='localhost'; 
mysql> flush privileges; 

即可將密碼修改爲yourpassword

也可以使用mysqladmin
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例子:mysqladmin -uroot -p123456 password 123

5、設置mysql允許遠程連接

基於安全考慮root賬戶一般只能本地訪問,沒有遠程訪問的權限的,因此當程序跟數據庫不在同一臺服務器上時,我們需要開啓mysql的遠程訪問權限。下面是 5.0版本的 基本的步驟 如果是8.0版本的請看5.3

5.1、登錄到mysql中,爲root進行遠程訪問的授權,執行下面的命令:
 mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

如果是需要授權給某個ip,則只需要將命令中的%換成對應的ip地址即可,如:
GRANT ALL PRIVILEGES ON . TO root@“172.168.2.135” IDENTIFIED BY “root”;
最後的 “root” 代表你給這些地址分配的遠程登錄密碼。

5.2、重新加載權限

因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。

mysql> flush privileges;
5.3 mysql 8.0版本以後的
CREATE USER 'root'@'%' IDENTIFIED BY 'yourpassword';  -- 創建用戶
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;  -- 授權
flush privileges; -- 刷新權限

創建一個root用戶,密碼是yourpassword

以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章