CentOS 7 安裝 MySQL5.7


一:使用RPM安裝MySQL5.7

  學到了在CentOS里安裝MySQL5.7,那你肯定對MySQL有個基本的使用,所以我廢話少說直接干貨!!

1:下載MySQL5.7的rpm安裝包

  下載地址  選擇合適的版本,這里我們使用的是MySQL5.7.33;下載完成后發送到自己的CentOS7服務器里,這里可以通過命令:rz -y來上傳,或者Xftp

 2:卸載已安裝的MySQL(沒安裝過則跳過)

  注:卸載之前請關閉mysql服務,命令:systemctl stop mysqld  

按照順序卸載:

rpm -e --nodeps mysql-community-server
rpm -e --nodeps mysql-community-client
rpm -e --nodeps mysql-community-libs
rpm -e --nodeps mysql-community-common

  卸載完基本的環境后,我們要清理依賴的文件(數據庫配置文件及數據庫數據文件)

 

-- 刪除數據庫配置文件(一般情況下卸載了mysql這個文件也會被自動刪除)
    rm -rf  /etc/my.cnf
-- 刪除數據庫數據文件(包含系統數據庫表和自定義數據庫表)
    rm -rf /var/lib/mysql
-- 刪除日志臨時文件(比如安裝后產生密碼的文件,不刪除會發現安裝后查詢2個初始密碼,但以下面的為主)
    rm -rf /var/log/mysqld.log

3:MySQL安裝環境准備

# 卸載mariadb:

  檢查是否安裝了mariadb(CentOS7默認安裝),如存在則卸載mariadb;如果你是CentOS6,則默認是MySQL,那么你就卸載MySQL即可

  說明:以前的Linux系統中數據庫大部分是MySQL,不過自從被 sun 收購之后,就沒用集成在centos這些開源Linux系統中了,那么如果想用的話就需要自己安裝了,首先centos7 已經不在默認提供 MySQL,因為收費了你懂得,所以內部集成了mariadb,而安裝 MySQL 的話會和mariadb的文件沖突,所以需要先卸載掉mariadb

rpm -qa | grep mariadb rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

# 安裝所需依賴:

  一般都是最新版了,以防萬一后面安裝出錯,缺少依賴

yum install libaio yum install net-tools

4:安裝我們上傳的四個MySQL包並啟動

# 安裝:

  安裝時必須嚴格遵守安裝順序 依賴關系依次為 common → libs → client → server

  注:ivh中, i-install安裝;v-verbose進度條;h-hash哈希校驗

rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.33-1.el7.x86_64.rpm

# 安裝后查詢安裝的MySQL版本
mysqladmin --version

# 啟動及查詢狀態:

# 查詢MySQL在系統的狀態 [root@VM-8-15-centos ~]# systemctl status mysqld # 啟動MySQL數據庫 [root@VM-8-15-centos ~]# systemctl start mysqld # 關閉MySQL數據庫 [root@VM-8-15-centos ~]# systemctl stop mysqld # 重啟MySQL數據庫 [root@VM-8-15-centos ~]# systemctl restart mysqld # 查看MySQL進程 [root@VM-8-15-centos ~]# ps -ef | grep mysql

5:登錄安裝的MySQL5.7

  由於MySQL5.7.4之前的版本中默認是沒有密碼的,登錄后直接回車就可以進入數據庫,從而在里面進行設置密碼等操作。其后版本對密碼等安全相關操作進行了一些改變,在安裝過程中,會在安裝日志中生成一個臨時密碼

  獲取數據庫臨時密碼:grep 'temporary password' /var/log/mysqld.log

 # 更改密碼

   初始化密碼只是提供給你登錄到內部,而我們進入到內部必須修改密碼,否則無法對數據庫操作,就如下圖我們無法操作

 # new_password替換成自己的密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

  什么??不符合策略,這里告訴你,密碼為8位並且包含特殊字符、大小寫字母、數字

  如: ALTER USER 'root'@'localhost' IDENTIFIED BY  'aaAA$$!!66' ;

# 查看密碼策略及更改策略

  這是因為MySQL有密碼設置的規范,具體是與validate_password_policy的值有關:

  查看默認的策略配置 : show variables like 'validate_password%';  

mysql>  show variables like 'validate_password%';  
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |  是否驗證用戶名
| validate_password_dictionary_file    |        |  密碼策略文件,策略為STRONG才需要
| validate_password_length             | 8      |  密碼長度
| validate_password_mixed_case_count   | 1      |  大小寫字符長度,至少一個
| validate_password_number_count       | 1      |  數字至少一個
| validate_password_policy             | MEDIUM |  密碼策略
| validate_password_special_char_count | 1      |  特殊字符至少一個
+--------------------------------------+--------+

  看到上面設置個密碼那么復雜,還記不住,那我們修改一下策略(設置LOW並且長度設置為3)

set global validate_password_policy=0; # 關閉密碼復雜性策略(LOW) set global validate_password_length=3; # 設置密碼復雜性要求密碼最低長度為3 select @@validate_password_policy; # 查看密碼復雜性策略 select @@validate_password_length; # 查看密碼復雜性要求密碼最低長度大小 show variables like 'validate_password%'; # 查詢具體策略 +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 3 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+

  終於可以設置靈魂密碼了 : mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';

6:創建用戶並授權

  MySQL中的用戶賬戶由用戶名和主機部分組成,要創建MySQL賬戶語法如下

基本創建: 語法:mysql> CREATE USER '用戶名'@'localhost' IDENTIFIED BY '密碼'; # '用戶名'@'localhost' 其中localhost代表設置只能從localhost本機連接到MySQL服務器,無法遠程 語法:mysql> CREATE USER '用戶名ser'@'119.28.68.52' IDENTIFIED BY '密碼'; # '用戶名'@'119.28.68.52' 只能從IP 119.28.68.52 的計算機授予(遠程)訪問權限 語法:mysql> CREATE USER '用戶名'@'%' IDENTIFIED BY '密碼'; # '用戶名'@'%' 可以從任何主機連接到MySQL 用戶賬戶權限設置: ALL PRIVILEGES - 授予用戶帳戶的所有權限。 CREATE - 允許用戶帳戶創建數據庫和表。 DROP - 允許用戶帳戶刪除數據庫和表。 DELETE - 允許用戶帳戶從特定表中刪除行。 INSERT - 允許用戶帳戶將行插入特定表。 SELECT - 允許用戶帳戶讀取數據庫。 UPDATE - 允許用戶帳戶更新表行。 語法:mysql> GRANT ALL 權限1,權限2,... ON 分配權限的數據庫名稱 . * TO '用戶名'@'%'; 一些示例如下: 對特定數據庫上的用戶帳戶授予所有權限: GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'; 為所有數據庫上的用戶帳戶授予所有權限: GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost'; 通過數據庫中的特定表格對用戶帳戶的所有權限: GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost'; 通過特定數據庫為用戶帳戶授予多個權限: GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost'; 顯示MySQL用戶帳戶權限 要查找授予特定MySQL用戶帳戶的權限,請使用SHOW GRANTS語句: SHOW GRANTS FOR '用戶名'@'localhost';
# 首先我創建一個數據庫,為了給用戶分配上權限 CREATE DATABASE IF NOT EXISTS school DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # 創建用戶 CREATE USER 'jack'@'%' IDENTIFIED BY '54088';  # 可遠程訪問權限 CREATE USER 'jack'@'localhost' IDENTIFIED BY '54088'; # 本地訪問的權限 # 分配school表給用戶jack最大權限 GRANT ALL PRIVILEGES ON school . * TO 'jack'@'%'; # 刷新配置 flush privileges;

 # 撤銷MySQL用戶上的權限

  用戶帳戶撤消一個或多個權限的語法與授予權限時幾乎相同。如要通過特定數據庫撤消用戶帳戶的所有權限,請使用以下命令:

     REVOKE ALL PRIVILEGES ON school.* FROM 'jack'@'%';

 # 刪除MySQL用戶賬戶

   DROP USER 'jack'@'%';

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM