修改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 7下mysql 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
MySQL(mysql 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