Mysql連接失敗總結

linux下

 

方法一:


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

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>

mysql>


方法二:


直接使用/etc/mysql/debian.cnf文件中[client]節提供的用戶名和密碼:
# mysql -udebian-sys-maint -p
Enter password: <輸入[client]節的密碼>
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>

mysql>


方法三:

# mysql -uroot -p
Enter password: <輸入/etc/mysql/debian.cnf文件中[client]節提供的密碼>

、、、、、、、、、、、、、、、、、、、、、、、

window 下
命令行下輸入:
>cd E:/mysql/bin
>mysqladmin -u root password 你的密碼
>mysql -u root -p
Enter password: 你的密碼
便可以

、、、、、、、、、、、、、、、、、
找到了根本原因,在此涼一下:

導致此問題的根源在:因爲給mysql的root設置了密碼,而不是最初安裝好時的密碼爲空,所以使用

mysqladmin version這樣子不行了,必須這樣子:mysqladmin -uroot -p version,回車後按照提示要求輸入

root密碼即可成功運行命令。

第一種方法其實就是在不知道root密碼的情況下的一種解決辦法,那樣子啓動不用密碼即可進mysql

裏面並進行root密碼的修改,解決忘記了root密碼的問題。


輸入命令“mysqladmin -u root password 你的密碼”作用是修改root用戶的密碼,這條命令能夠不經

提示輸入原密碼而成功執行,也說明了原密碼是空。之後使用修改後的密碼自然能夠成功登錄。

 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎麼更改密碼?
首先要聲明一點,大部分情況下,修改MySQL是需要有mysql裏的root權限的,所以一般用戶無法更改密碼

,除非請求管理員。   

方法一
  使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,
  不過別忘了使用PASSWORD函數。
  方法二
  使用mysqladmin,這是前面聲明的一個特例。
  mysqladmin -u root -p password mypasswd
  輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改爲mypasswd。
  把命令裏的root改爲你的用戶名,你就可以改你自己的密碼了。
  當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,
  那麼這種方法就是無效的。
  而且mysqladmin無法把密碼清空。
  下面的方法都在mysql提示符下使用,且必須有mysql的root權限:

  方法三
  mysql> INSERT INTO mysql.user (Host,User,Password)
  VALUES('%','jeffrey',PASSWORD('biscuit'));
  mysql> FLUSH PRIVILEGES
  確切地說這是在增加一個用戶,用戶名爲jeffrey,密碼爲biscuit。
  在《mysql中文參考手冊》裏有這個例子,所以我也就寫出來了。
  注意要使用PASSWORD函數,然後還要使用FLUSH PRIVILEGES。
  方法四
  和方法三一樣,只是使用了REPLACE語句
  mysql> REPLACE INTO mysql.user (Host,User,Password)
  VALUES('%','jeffrey',PASSWORD('biscuit'));
  mysql> FLUSH PRIVILEGES
  方法五
  使用SET PASSWORD語句,
  mysql> SET PASSWORD FOR " = PASSWORD('biscuit');
  擬也必須使用PASSWORD()函數,
  但是不需要使用FLUSH PRIVILEGES。
  方法六
  使用GRANT ... IDENTIFIED BY語句
  mysql> GRANT USAGE ON *.* TO " IDENTIFIED BY 'biscuit';
  這裏PASSWORD()函數是不必要的,也不需要使用FLUSH PRIVILEGES。
  注意: PASSWORD() [不是]以在Unix口令加密的同樣方法施行口令加密。
  MySQL 忘記口令的解決辦法
  如果 MySQL 正在運行,首先殺之: killall -TERM mysqld。
  啓動 MySQL :bin/safe_mysqld --skip-grant-tables &
  就可以不需要密碼就進入 MySQL 了。
  然後就是
  >use mysql
  >update user set password=password("new_pass") where user="root";
  >flush privileges;
  重新殺 MySQL ,用正常方法啓動 MySQL 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章