CentOS7上用 yum 安裝MySQL5.7

在CentOS7中默認安裝有MariaDB,這個是MySQL的分支,但爲了需要,還是要在系統中安裝MySQL,而且安裝完成之後可以直接覆蓋掉MariaDB。

本次安裝的是 MySQL5.7。

1、下載並安裝MySQL 的 yum Repository

安裝 yum Repository :

[root@BrianZhu /]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum 安裝:

[root@BrianZhu /]# yum -y install mysql57-community-release-el7-10.noarch.rpm

yum 安裝 MySQL:

[root@BrianZhu /]# yum -y install mysql-community-server

這步可能會花些時間,安裝完成後就會覆蓋掉之前的mariadb。

img
出現這樣的提示表示安裝成功。

2、MySQL 啓動

啓動:

[root@BrianZhu /]# systemctl  start  mysqld.service

查看狀態:

[root@BrianZhu /]# systemctl  status  mysqld.service

在這裏插入圖片描述

3、密碼配置

MySQL 正常運行後,如果要進入MySQL,要先找出root的密碼,可以在日誌文件中找出 初始密碼

[root@BrianZhu /]# grep "password" /var/log/mysqld.log

在這裏插入圖片描述

上面標記的就是初始密碼。

root 登錄數據庫:

[root@BrianZhu /]# mysql -uroot -p     # 回車後會提示輸入密碼

輸入初始密碼。 此時不能做任何事情,因爲MySQL默認必須修改密碼之後才能操作數據庫:

mysql> ALTER USER 'root'@'localhost' identified by 'new password' ;

如果 新密碼設置過於簡單會報錯,如下圖:
img

查看MySQL 的密碼規則 :

mysql> SHOW VARIABLES LIKE 'validate_password%' ;
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF |
| validate_password_dictionary_file    |       |
| 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     |
+--------------------------------------+-------+
rows in set (0.01 sec)

參數說明:

參數 說明
validate_password_check_user_name 設置爲ON 時,表示能將密碼設置成當前用戶名。
validate_password_dictionary_file validate_password 用於密碼驗證的文件路徑。
validate_password_length validate_password 所需密碼的最小字符數。(這個值最小是4)
validate_password_mixed_case_count 如果密碼策略是中等或更強時,validate_password 要求密碼至少要包含的小寫字母個數和大寫字母個數。
validate_password_number_count 如果密碼策略是中等或更強時,validate_password 要求密碼至少要包含的數字個數。
validate_password_policy 控制validate_password的密碼策略(密碼強度等級)。
取值: 0–>low 、1–>MEDIUM 、 2–>strong。

MySQL 密碼的長度是由validate_password_length 決定的,而 validate_password_length 的計算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

MySQL 密碼設置的複雜度,與 validate_password_policy 的值有關:

img

3.1、MySQL密碼設置的解決方法

方法1、將密碼設置爲 複雜的密碼

ALTER USER  'root'@'localhost'  IDENTIFIED BY   'z?guwrBhH7p>';

img

方法2、修改密碼規則:
修改密碼規則,允許設置簡單的密碼。

mysql> set global validate_password_length=4; 
mysql> set global validate_password_policy=0; 

設置之後,密碼就可以設置的很簡單,例如1234之類的。

方法3:關閉密碼複雜策略

/etc/my.cnf

[mysqld]

#關閉密碼複雜策略
validate_password=off

# 使用UTF-8作爲默認字符集
character-set-server=utf8

重啓mysql:

systemctl restart mysqld.service

3.2、沒有找到初始密碼的解決方法

vim /etc/my.cnf

[mysqld] 配置中添加

[mysqld]
skip-grant-tables

然後,啓動(或者重啓)mysql :

systemctl start mysqld.service
# systemctl restart mysqld.service

登錄mysql數據庫,這裏密碼爲空

mysql -uroot -p

進入mysql 終端,然後修改密碼爲 1234@Mfg ,命令如下 :

set password for 'root'@'localhost'=PASSWORD('1234@Mfg');
flush privileges;
exit

注意:
skip-grant-tables 生效期間,除了修改密碼,無法進行其他的操作。

退出Mysql,註釋剛纔添加的配置的字段 # skip-grant-tables
重啓 mysql :

systemctl restart mysqld.service

接着,用新的密碼重新登錄:

mysql -uroot -p1234@Mfg   # 登錄mysql數據庫

查看密碼規則:

mysql> SHOW VARIABLES LIKE 'validate_password%' ;

在這裏插入圖片描述

修改密碼規則,允許設置簡單的密碼。

mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
mysql> flush privileges;

mysql> SHOW VARIABLES LIKE 'validate_password%' ;

在這裏插入圖片描述

修改爲簡單的密碼:

mysql> set password for 'root'@'localhost'=PASSWORD('123456');
#alter user 'root'@'%' identified by '1234@Mfg';

退出mysql 。

接着,用新的密碼重新登錄:

mysql -uroot -p123456

如果中間過程沒有異常,則登錄成功。

4、移除MySQL 的 Yum Repository

因爲安裝了 Yum Repository ,以後每次 yum 操作都會自動更新,需要把這個卸載掉:

[root@BrianZhu ~]# yum -y remove mysql57-community-release-el7-10.noarch

5、 第三方客戶端(遠程)的登錄授權:

如果要第三方客戶端(遠程)的登錄授權,則需要權限設置:

mysql> use mysql;
mysql> update user set host='%' where user='root';

# 這樣在遠端就可以通過root用戶訪問Mysql.或者是授權法如下
mysql> use mysql;
Database changed

mysql>grant all on *.*  to root@'%' identified by '數據庫密碼' ;

# 刷新權限
mysql> flush privileges;

# 查看修改後的信息
mysql> select host,user,password from user;

如果授權不成功,請查看防火牆。

6、yum安裝的mysql 數據存放的默認目錄

/var/lib/mysql

在這裏插入圖片描述

轉載自: https://www.cnblogs.com/brianzhu/p/8575243.html

發佈了288 篇原創文章 · 獲贊 256 · 訪問量 112萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章