1. 程式人生 > >修改MySQL 5.7.9版本的root密碼方法以及一些新變化整理

修改MySQL 5.7.9版本的root密碼方法以及一些新變化整理

MySQL 5.7版本開始,增強密碼驗證機制,網上說安裝的時候會在/root/.mysql_secret  檔案中生成預設密碼,這一點自 5.7.6版本以後也去掉了。

針對如果生成預設密碼,網上有一個版本,內容如下:

1、修改配置檔案,一般在 /etc/my.cnf, 在[mysqld]欄位下增加skip-grant-tables 欄位,用以忽略許可權驗證;

2、重啟MySQL伺服器,CentOS 7.0操作命令是:

1 systemctl restart mysqld.service

3、使用mysql -u root -p 登入資料, 密碼直接回車;

4、修改mysql資料庫(名稱),user表的authentication_string欄位,修改命令如下:  

1 2 3 mysql> update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost'; mysql> flush privileges; mysql> quit;

5、修改配置檔案,去掉skip-grant-tables,恢復成原來的樣子, 然後重新MySQL伺服器。

6、使用第4步設定的密碼,登入mysql伺服器。

7、通過 set password=password('new_password'); 命令重新設定密碼;

以上的方法,在MySQL 5.7早期版本時,還是很好用的,但在MySQL 5.7.6以後的版本,最後一點重置密碼總是無法生效,會出來下面的錯誤。

1 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

同時,無法進行其它的操作。

這是因為,自MySQL 5.7開始,密碼存在有效期的概念, 同時因為安全等級的問題,需要使用使用其它的方式進行設定。另一個需要注意的點是, 自5.7.6開始廢棄了password()函式,同時無法設定old_password=1, 這真的是一件比較曲折的探索過程。

那麼,先把MySQL 5.7.9版本以上的密碼設定方法整理一下。

大部分和上面整理的內容相同,關鍵在第4步後,把authentication_string 裡寫入的值記一下(這是因為password()函式已廢棄)

通過使用以下命令,代替第7步的, set password=password('new_password') 方法。

1 2 3 4 mysql> ALTER USER 'jeffrey'@'localhost' -> IDENTIFIED WITH mysql_native_password -> AS 'authentication_string欄位內容'; Query OK, 0 rows affected (0.01 sec)

其實上面的命令有一個簡化版本,命令如下

1 2 3 mysql> ALTER USER USER() IDENTIFIED BY 'news_password'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

之所以會出現上面的錯誤資訊,這和密碼的安全等級相關,檢視安全等級命令如下

1 2 3 4 5 6 7 8 9 10 11 mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name                        | Value  | +--------------------------------------+--------+ | 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      | +--------------------------------------+--------+

通過  SET GLOBAL  validate_password_policy='LOW';  命令,降低安全等級後,就可以直接使用,限制是必須8個字元以上;

關於安全等級更詳細的介紹如下

  • LOW 政策只測試密碼長度。 密碼必須至少有8個字元長。

  • MEDIUM 政策的條件 密碼必須包含至少1數字字元,1 大寫和小寫字元,和1特別 (nonalphanumeric)字元。

  • STRONG 政策的情況 密碼子字串長度為4的或更長時間不能匹配 單詞在字典檔案中,如果一個人被指定。

最後,為了解決密碼失效的問題, 最後在配置檔案的[mysqld]欄位下,增加以下欄位

1 2 [mysqld] default_password_lifetime=0

也可以通過命令列進行設定

1 ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER

好了,希望上面的資訊能夠對大家所有幫助。

相關推薦

修改MySQL 5.7.9版本root密碼方法以及一些變化整理

MySQL 5.7版本開始,增強密碼驗證機制,網上說安裝的時候會在/root/.mysql_secret  檔案中生成預設密碼,這一點自 5.7.6版本以後也去掉了。 針對如果生成預設密碼,網上有一個版本,內容如下: 1、修改配置檔案,一般在 /etc/my.cnf, 在[mysqld]欄位下增加skip-

MySQL 5.7.9版本sql_mode=only_full_group_by問題

nal light com -- mode query group by gin serve MySQL 5.7版本sql_mode=only_full_group_by問題 1、在MySQL環境下執行分組sql,如下 mysql> select db_server

MySQL數據庫學習【補充】MySQL 5.7.9版本sql_mode=only_full_group_by問題

bsp lock sql alt glob 當前 log cti src 用到GROUP BY 語句查詢時com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT

mysql學習【第9篇】:MySQL 5.7.9版本sql_mode=only_full_group_by問題

學習 sele 語句 nag ref func res not star MySQL 5.7.9版本sql_mode=only_full_group_by問題 用到GROUP BY 語句查詢時com.mysql.jdbc.exceptions.jdb

解決MySQL 5.7.9版本sql_mode=only_full_group_by問題

MySQL 5.7.9版本sql_mode=only_full_group_by問題 21-Jun-2018 18:45:58.056 INFO [http-nio-8080-exec-8] org.springframework.beans.factory.xml.XmlBeanDefiniti

mysql 5.7.14+ 版本更改密碼, 原來user表的password程式設計了authentication_string

1、首先停止正在執行的MySQL程序 Linux下,執行 killall -TERM MySQLd Windows下,如果寫成服務的 可以執行:net stop MySQL,如未載入為服務,可直接在程序管理器中進行關閉。 2、以安全模式啟動MySQL Linux

MySql 5.7 重置root密碼

mission 改密 sock plugin 安全 manual var sta -- 一、以安全模式登錄 # Stop MySQL sudo service mysql stop # Make MySQL service directory. sudo mkdir -p

MySQL 5.7 重置root使用者密碼

MySQL 5.7 重置root使用者密碼 注:MySQL 8.0 以上版本,請移步:MySQL 8.0 以上版本正確修改 root 密碼 cmd 切換到 mysql\bin 目錄下執行下面語句,用於跳過使用者驗證訪問資料庫(注:如果本機有正在執行的mysql的服務需要先停掉)

mysql-5.7.9 shutdown 語法詳解

resp 登錄 ive conn denied 權限不足 這樣的 fec comm mysql-5.7.9 終於提供shutdown 語法啦:   之前如果想關閉一個mysql數據庫可以通過kill 命令、mysqladmin shutdown 、service mysql

mysql-5.7.18版本(二進制包安裝)-自定義安裝路徑

mysql linux lnmp mysql-5.7.18版本(二進制包安裝)-自定義安裝路徑安裝路徑:/application/mysql-5.7.181.前期準備mysql依賴libaioyum install -y libaio創建用戶mysql,以該用戶的身份執行mysqluseradd

windows下MySQL 5.7.19版本sql_mode=only_full_group_by問題

連接 end group 連接數 模式 數據庫 png func all 用到GROUP BY 語句查詢時出現 which is not functionally dependent on columns in GROUP BY clause; this is incom

關於linux-Centos 7mysql 5.7.9的rpm包的安裝方式

mysql 5.7.9的rpm包的安裝方環境介紹>>>>>>>>>>>>>>>>>>操作系統:Centos 7.1mysql數據庫版本:mysql5.7.9mysql官方網站:http://www.my

Windows 64 位 mysql 5.7以上版本包解壓安裝

mysql msql安裝 mysql官網下載地址:https://dev.mysql.com/downloads/mysql/ 以5.7.21版本為例 首先安裝包解壓後,沒有網上教程裏面提到的data文件夾和my-default.ini,如下圖所示 配置環境變量請參照網上教程,這個一般沒有問題 主要

docker 修改 mysql 5.7 sql_mode

添加 sql sele In 進入容器 docker 容器 bsp nbsp docker exec -ti {容器ID} /bin/bash 進入容器 apt-get install vim 安裝vim 找到 vim /etc/mysql/my.cnf

MySQLmysql 5.7)用戶密碼的管理

AD from root text AS ant SQ netstat oss 數據庫是信息系統中非常重要的一個環節,合理高效的對其進行管理是非常重要的工作。通常由管理員創建不同的管理賬戶,然後給予不同的操作權限,把這些賬戶交給相應的管理人員使用。在mysql數據庫中,所有

mysql-5.7.21版本一直報錯ERROR 1067 (42000)!

ima 你們 water http blog 配置 有用 點贊 ESS 網上很多教程都是錯誤的,說改什麽配置文件?都是錯誤的!唯有這樣子是正確的,分享給你們。如覺得有用,請點贊 一,報錯上圖: 二、修改數據庫配置 三、重啟數據庫,並重啟進入數據庫 四、重新插入數據 看到已經

mysql-5.7.23版本安裝以及常見錯誤(詳細)

作業系統:windows7 64-bit 資料庫版本:mysql-5.7.23-winx64 1. 首先去官網下載符合作業系統的資料庫版本:https://dev.mysql.com/downloads/mysql/ 2. 下載之後解壓縮到某個資料夾或目錄下,我的是D:\mysql-5.

Linux系統下以RPM方式安裝mysql-5.7.9

原文 很好但是有幾點錯誤,更正一下.   mysql-5.7.9 64位 RPM集合包在Linux系統中的安裝過程。因為我用的64位的CentOS7所以我下的是64位的集合包,如果你用的32位的Linux系統請下載32位的集合包。這裡我只講安裝,不解

ubuntu安裝mysql 5.7未提示輸入密碼無法登陸的情況

在Ubuntu18.04通過apt-get安裝mysql服務 [email protected]:~$ sudo apt-get install mysql-client-core-5.7 [email protected]:~$ sudo apt-g

mysql 5.7版本中group by問題解決辦法

select max(user_id) as user_id,`create_time` from silence where user_id in (1, 2, 3, 4) group by user_id desc; 我使用如上語句進行查詢的時候,竟然報錯了。 Expressi