詳解mysql密碼遺忘與登陸報錯的問題解決
下面小編就為大家帶來一篇淺談mysql密碼遺忘和登陸報錯的問題。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧
mysql登入密碼忘記,其實解決辦法很簡單,只需要在mysql的主設定檔my.cnf裡加入一行「跳過授權表」的參數選擇即可!
在my.cnf中新增下面一行:
[root@test-huanqiu ~]# vim /etc/my.cnf //在[mysqld]区域里添加 ........ skip-grant-tables //跳过授权表
然後重啟mysql服務,即可無密碼登錄
[root@test-huanqiu ~]# /etc/init.d/mysqld restart
登入後重設密碼
[root@test-huanqiu ~]# mysql mysql> select host,user,password from mysql.user; +--------------------+------+-------------------------------------------+ | host | user | password | +--------------------+------+-------------------------------------------+ | localhost | root | *481ACA1BD6D1E86221244904E9C0FABA33B40B84 | | host-192-168-1-117 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | host-192-168-1-117 | | | +--------------------+------+-------------------------------------------+ 6 rows in set (0.00 sec) mysql> update mysql.user set password=password("123456") where host="localhost" and user="root"; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> select host,user,password from mysql.user; +--------------------+------+-------------------------------------------+ | host | user | password | +--------------------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | host-192-168-1-117 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | host-192-168-1-117 | | | +--------------------+------+-------------------------------------------+ 6 rows in set (0.00 sec) mysql>
再次將my.cnf裡新增的那一行註解,然後重啟mysql
#[root@test-huanqiu ~]# vim /etc/my.cnf........#skip-grant-tables [root@test-huanqiu ~]# /etc/init.d/mysqld restart [root@test-huanqiu ~]# mysql -p123456mysql>
----------------------------------------- -------------------------------------------------- ----------------------------
發現的一個坑:
mysql之前進行了全量備份,在恢復後,發現用之前的密碼登陸不進去了!
使用上面的方法,無密碼登陸後再重置密碼,但是重置密碼後發現仍然登陸不進去。
最後發現是因為mysql.user表內容被清空了!
mysql> select host,user,password from user; Empty set (0.00 sec)
解決:
#插入資料,再重設密碼
mysql> insert into user(host,user,password) values("localhost","root","123456"); Query OK, 1 row affected, 3 warnings (0.01 sec) mysql> select host,user,password from user; +-----------+------+----------+ | host | user | password | +-----------+------+----------+ | localhost | root | 123456 | +-----------+------+----------+ 1 row in set (0.00 sec) mysql> update mysql.user set password=password("123456") where host="localhost" and user="root"; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+------+-------------------------------------------+ 1 row in set (0.00 sec) mysql> insert into user(host,user,password) values("127.0.0.1","root","123456"); Query OK, 1 row affected, 3 warnings (0.00 sec) mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | 127.0.0.1 | root | 123456 | +-----------+------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql> update mysql.user set password=password("123456") where user="root"; Query OK, 1 row affected (0.00 sec) Rows matched: 2 Changed: 1 Warnings: 0 mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+------+-------------------------------------------+
然後使用重置後的密碼就能正常登陸了!
----------------------------------------- -------------------------------------------------- -----------------------
mysql登入報錯1:
[root@test-huanqiu ~]# mysql -p123456 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) [root@test-huanqiu ~]# ps -ef|grep mysql root 28279 1 0 12:55 ? 00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/mysql.pid mysql 29059 28279 0 12:55 ? 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/data/mysql/data/mysql-error.log --pid-file=/data/mysql/data/mysql.pid --socket=/usr/local/mysql/var/mysql.sock --port=3306 root 30726 11268 0 12:58 pts/2 00:00:00 grep mysql
可知,目前mysql.sock檔案路徑是/usr/local/mysql/var/mysql.sock,
解決方法:做軟連結
[root@test-huanqiu ~]# ll /usr/local/mysql/var/mysql.sock rwxrwxrwx. 1 mysql mysql 0 Nov 29 12:55 /usr/local/mysql/var/mysql.sock [root@test-huanqiu ~]# rm -f /var/lib/mysql/mysql.sock [root@test-huanqiu ~]# ln -s /usr/local/mysql/var/mysql.sock /var/lib/mysql/mysql.sock
這樣就沒問題了
[root@test-huanqiu ~]# mysql -p123456 mysql>
----------------------- -------------------------------------------------- ---------------------------
啟動mysql的時候報錯:
Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/data/mysql.pid).
嘗試的解決方法:
(1)權限問題
可能是mysql.pid檔案沒有寫的權限,將mysql的安裝目錄和資料目錄的權限都設定成mysql啟動使用者權限。例如都修改為mysql:mysql權限
(2)可能進程裡已經存在mysql進程
ps -ef|grep mysql 查出要是有mysql進程存在,就kill掉,再嘗試重啟mysql
(3)可能是多次在機器上安裝mysql,有殘餘資料影響了服務的啟動。
去mysql的資料目錄看看,如果存在mysql-bin.index,就立刻刪掉它,它就是罪魁禍首了!
(4)mysql在啟動時沒有指定設定檔時會使用/etc/my.cnf設定文件,請開啟這個檔案查看在[mysqld]節下有沒有指定資料目錄。
在[mysqld]下加入設置,如datadir = /data/mysql/data
(5)skip-federated字段問題
檢查一下my.cnf檔案中有沒有被註解掉的skip-federated字段,如果有就立即註解掉。
去my.cnf檔案下是否有log日誌配置路徑,如果有,查看下日誌目錄是否存在,日誌目錄權限要確保是mysql啟動使用者權限。
(7)selinux惹的禍,如果是centos系統,預設會開啟selinux閉它,開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後記憶體退出重啟機器試試。 (8)重新初始化mysql資料試試
. /scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql------------------」 ————————————————————
2)mysql服務端192.168.1.14的iptables裡做了3306埠連線的白名單限制;
3)mysql服務端192.168.1.14的my.cnf檔案裡設定了bind_address位址綁定,不允許本機連線;
4)mysql服務端192.168.1.14的my.cnf檔案裡配置了skip_networking,這使用MySQL只能透過本機Socket連接(socket連接也是本機連線的預設方式),放棄對TCP/IP的監聽;
5)排查DNS解析問題,檢查mysql服務端192.168.1.14的my.cnf文件裡是否設定了skip_name_resolve。這個參數加上後,不支援主機名稱的連線方式。
6)排查--port問題,有可能mysql服務端192.168.1.14的MySQL port不是預設3306,例如是3307端口,這樣,遠端連線的時候要加上--port= 3307
7)排查使用者和密碼問題,其實使用者和密碼的錯誤,不會出現111的,所以排除使用者密碼問題
ERROR 1045 (28000): Access denied for user ' root'@'XXXX' (using password: YES)
以上是詳解mysql密碼遺忘與登陸報錯的問題解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

在使用Thelia開發電商網站時,我遇到了一個棘手的問題:MySQL模式設置不當,導致某些功能無法正常運行。經過一番探索,我找到了一個名為TheliaMySQLModesChecker的模塊,它能夠自動修復Thelia所需的MySQL模式,徹底解決了我的困擾。

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。
