[英]Cannot set password for MySQL root user
我試圖讓 MySQL 在我的本地主機上運行。 我以前從未發生過這種情況,但是在安裝時sudo apt-get install mysql-server
沒有要求我提供初始密碼。
在搜索“重置”我的密碼並與目錄權限作斗爭的答案后,我目前處於這種狀態:
mysql -u root -p
會詢問我的密碼,在我輸入密碼后,它會抱怨ERROR 1698 (28000): Access denied for user 'root'@'localhost'
mysql -u root
(no password),它會說ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
mysqld_safe --skip-grant-tables
重置密碼的建議,那么我會在此過程中遇到一些小問題:
sudo service mysql stop
sudo mysql_safe --skip-grant-tables
會說mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
sudo mkdir -p /var/run/mysqld
和sudo chown mysql /var/run/mysqld
我可以解決這個問題mysqld_safe
將運行並顯示消息Starting mysqld daemon with databases from /var/lib/mysql
,然后掛起。 而Ctrl + C並沒有讓我擺脫那個。mysql -u root
並獲得mysql>
提示。use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
設置一個新密碼use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
這將告訴我它成功更新了行,並顯示消息Rows matched: 1 Changed: 1 Warnings: 1
'PASSWORD' is deprecated and will be removed in a future release.
killall mysqld_safe
說no process found
。 重新啟動並輸入我的新密碼0000
,我將被拒絕訪問。 系統是Linux 4.15.0-48-generic #51-Ubuntu SMP
。
如果我運行mysqladmin -u root password '0000'
(沒有sudo
),我得到:
mysqladmin:連接到“本地主機”服務器失敗
錯誤:'用戶'root'@'localhost'的訪問被拒絕
如果我用sudo
運行它,我會得到:
mysqladmin: [警告] 在命令行界面上使用密碼可能不安全。
警告:由於密碼將以明文形式發送到服務器,請使用 ssl 連接以確保密碼安全。
最后一個並沒有真正告訴我關於密碼更改是否發生的任何信息; 它是否被拒絕(因為它是一個警告,而不是一個錯誤,我認為它應該通過),但在任何一種情況下,嘗試與0000
連接仍然說“訪問被拒絕”。
非常感謝有關如何解決此問題的任何建議。
我沒有直接用mysql
解決問題; 然而,對我自己來說,可接受的解決方案是切換到不同的數據庫軟件,但它仍然是一個 MySQL 系統,它讓我啟動並運行。 因此,如果有人陷入現有解決方案無法像我一樣工作的困境,也許這會派上用場,讓您上路並最終再次編寫代碼。
我所做的是:
mysql
/etc/mysql
和/var/lib/mysql
(不知道這一步有沒有必要)apt clean
, apt autoremove
, apt update
mariadb
mysqld_safe --skip-grant-tables
方法創建具有所有權限的新用戶,因為與root
連接總是失敗PHP + MariaDB 現在又可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.