文章目錄
在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。
出現這樣的提示表示安裝成功。
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' ;
如果 新密碼設置過於簡單會報錯,如下圖:
查看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
的值有關:
3.1、MySQL密碼設置的解決方法
方法1、將密碼設置爲 複雜的密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';
方法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