前言
MySql5.7目前CentOS上預設是沒有yum源的,yum安裝的是 MariaDB。是以我們需要自己先配置yum源。
一、下載下傳yum源
配置yum源步驟
指令:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm;
如圖所示:
二、安裝yum源
指令:rpm -Uvh mysql57-community-release-el7-8.noarch.rpm
檢視有哪些版本的mysql:
yum repolist all | grep mysql
三、安裝mysql
指令:yum install -y mysql-community-server
四、驗證MySql資料庫
檢視mysql狀态狀态
指令:systemctl status mysqld
啟動mysql
指令:systemctl start mysqld
重新開機mysql
指令:systemctl restart mysqld
設定開機啟動
指令:systemctl enable mysqld
指令:systemctl daemon-reload
出現如下圖所示說明啟動成功:
登入資料庫:
mysql5.7的新特性之一就是在初始化的時候會生成一個自定義的密碼,然後你需要找到這個密碼,登入的時候輸入
檢視初始化密碼:
指令:grep 'temporary password' /var/log/mysqld.log
初始化密碼就是:5Lor<VQX6*D?
登入資料庫:這裡-p之後不用輸入密碼,回車後再輸入。
指令:mysql -uroot –p
登入之後的樣子:
修改密碼:
注意,修改的密碼太簡單會不給修改,把大小寫字母和數字加上就肯定可以了。然後切記切記,mysql裡面的指令要加分号!分号!分号!
指令:SET PASSWORD = PASSWORD('Admin123!');
五、設定遠端登入
安裝完成驗證沒問題之後是無法在本地用工具登入通路的,現在要做兩件事,
一、将雲伺服器上的3306端口開放,如果資料庫設定成其他端口請開發對應的端口;
二、配置遠端可以通路。
指令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123!' WITH GRANT OPTION;
指令:flush privileges;
先設定剛才的密碼可以遠端登入,然後使用flush指令使配置立即生效。
如果還不行可以嘗試重新開機一下資料庫
這時候遠端就可以通路資料庫了。
退出Mysql用戶端指令:exit
六、Mysql使用者添加、删除、授權
1)添加使用者
指令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:
(1)username——将要建立的使用者名;
(2)host——指定該使用者在哪個主機上可以登入,"localhost"指該使用者隻能在本地登入,不能在另外一台機器上遠端登入,如果想遠端登入,将"localhost"改為"%",表示在任何一台電腦上都可以登入;也可以指定某台機器可以遠端登入;
(3)password——該使用者的登入密碼,密碼可以為空,若為空則該使用者可以不需要密碼登入伺服器。
例如:
CREATE USER 'test_admin'@'%' IDENTIFIED BY '[email protected]_S';
2)授權使用者:
指令:GRANT privileges ON databasename.tablename TO 'username'@'host'
說明:
(1)privileges——使用者的操作權限,如SELECT等。如果授予所有權限則使用ALL。
(2)databasename——資料庫名稱。tablename——表名。如果要給該使用者授予對所有資料庫和表的相應操作權限則可用*表示,例如*.*
例如:
GRANT SELECT ON test_db.* TO 'test_admin'@'%';
flush privileges;
注意:必須執行flush privileges;
flush privileges;含義:
mysql 新設定使用者或更改密碼後需用flush privileges重新整理MySQL的系統權限相關表,否則會出現拒絕通路,還有一種方法,就是重新啟動mysql伺服器,來使新設定生效。
3)撤銷使用者權限
指令:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
例如:REVOKE SELECT ON test_db.* FROM 'test_admin'@'%';
4)删除使用者及權限
指令:drop user 'username'@'host';
5)檢視使用者權限
指令:SHOW GRANTS FOR 'username'@'host';
七、資料庫簡單的配置
Mysql 配置檔案yum安裝的預設在/etc檔案夾下
檢視配置檔案:
指令:cat /etc/my.cnf
配置如下内容:
具體配置可參考部落格:https://www.cnblogs.com/xu743876685/p/8642027.html
#字元集編碼utf8
character-set-server=utf8
#支援group by用法
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#設定時區為東八區
default-time_zone = '+8:00'
#不區分表名大小寫
lower_case_table_names=1
八、更改安裝路徑
檔案說明
/usr/bin 用戶端程式和腳本
/usr/sbin mysqld伺服器
/var/lib/mysql 日志檔案,資料庫檔案
/usr/share/mysql 錯誤消息和字元集檔案
/etc/my.cnf 配置檔案
把目錄移到/data下需要進行下面幾步:
- 把MySQL服務程序停掉
指令:mysqladmin -u root -p shutdown 這個過程需要輸入密碼
- 把/var/lib/mysql整個目錄移到/data
指令:cp -R /var/lib/mysql /home/data/ (推薦)或者
mv /var/lib/mysql /home/data/
- 設定/home/data/下mysql檔案夾的屬主和權限
指令:chown -R mysql:mysql /data/mysql
- 修改配置檔案/etc/my.cnf
#datadir=/var/lib/mysql
datadir=/data/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock
注意如果配置完成登入用戶端報錯的話加上這段配置
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
[client]
socket = /data/mysql/mysql.sock
port= 3306
- 重新啟動MySQL服務
重新開機mysql
指令:systemctl restart mysqld
如果報Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
執行指令:
指令:setenforce 0即可!
九、解除安裝mysql
檢視安裝
指令:yum list installed mysql*
yum解除安裝mysql
将清單中出現的名字全部解除安裝掉,可以使用通配符*表示所有
yum remove mysql-community-*
中途會彈出确認對話,選擇y即可
rm -rf /var/lib/mysql
删除
mysql
的
lib
rm –rf /etc/my.cnf
删除配置檔案
my.cnf
解除安裝完成後再次用檢視
yum list installed mysql*
檢視相關剩餘檔案,
whereis mysql
發現還有一個 /usr/share/mysql 沒有删除,繼續删除該檔案
檢視其它配置
systemctl list-unit-files | grep mysql
到此步說明解除安裝完成。