Mysql 命令列啟動問題ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

來源:互聯網
上載者:User

標籤:

Centos 剛裝了mysql

yum install mysql

安裝成功了,安裝最後要求輸入了密碼,也輸入了,OK

mysql -uroot -p

輸入設定的密碼

竟然報錯了!

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YSE)

問朋友,他說初始密碼是空的,可我命名設定了密碼的阿。

密碼留空

還是錯誤!

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

於是重改密碼!

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking;
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(‘123456‘) where USER=‘root‘;
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password:123456

mysql>

利用安全模式成功登陸,然後修改密碼,等於給MySql設定了密碼。登陸進去後,想建立一個資料庫測試下。得到的結果確實:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

非常詭異啊,明明用密碼登陸進去了,怎麼還提示要求輸入密碼。
參考官方的一個文檔,見http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。如下操作後就ok了:

 

mysql> create database yan1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql>  SET PASSWORD = PASSWORD(‘123456‘);
Query OK, 0 rows affected (0.03 sec)

mysql> create database yan1;
Query OK, 1 row affected (0.00 sec)

也就是用mysql>  SET PASSWORD = PASSWORD(‘123456‘);這句話重新設定一次密碼!

 

改密碼的注意事項

假定現在用密碼123456 可以登陸到資料庫,要將密碼改成zhou。

 

第一種方式:在終端裡,注意現在還沒有登陸到資料庫,輸入命令mysqladmin -p123456 password zhou

會出現這麼一句警告:Warning: Using a password on the command line interface can be insecure.這表示已經改成功了。常見的誤區:
      誤區一:用原密碼已經登陸到mysql了,再這麼改就會報錯。一定注意,直接在終端裡,未登陸前改。

      誤區二:將-p123456 寫成 -p 123456.這樣會報錯的,-p後面不能帶空格。

      誤區三:password前面加了一個“-”.也是會報錯。

注意:password和新密碼之間一定要有空格。新密碼可以用""括起來。當有特殊字元時,這個引號是必須的。

 

第二種方式:登陸到mysql後,變更

mysql> update mysql.user set password=PASSWORD(‘yanyan‘) where user=‘root‘;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

誤區:只運行了第一行命令,沒有flush privileges是改不了密碼的。全弄成小寫。經驗證完全可行。

    綜合來看我更喜歡第一種改密碼的方式。

Mysql 命令列啟動問題ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.