問題描述
訪問mysql:error 1045 (28000): access denied for user 'root'@'localhost' (using password: no)
解決方法
一、修改root使用者的密碼
方法一:
/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:
mysql>
方法二使用mysqladmin。輸入
mysqladmin -u root -p oldpassword newpasswd
執行這個命令後,需要輸入root的原密碼,這樣root的密碼將改為newpasswd。同樣,把命令裡的root改為你的使用者名稱,你就可以改你自己的密碼了。
當然如果你的mysqladmin連線不上mysql server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的,而且mysqladmin無法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root許可權:
方法三mysql> insert into mysql.user (host,user,password) values('%','admin', password('admin'));
mysql> flush privileges
這是在增加乙個使用者,使用者名稱和密碼為admin。注意要使用password函式,然後還要使用flush privileges來執行確認。
方法四和方法三一樣,只是使用了replace語句
mysql> replace into mysql.user(host,user,password)values('%','system',password('manager'));
mysql> flush privileges
方法五使用set password語句
mysql> set password for system@"%" = password('manager');
你也必須使用password()函式,但是不需要使用flush privileges來執行確認。
方法六使用grant ... identified by語句,來進行授權。
mysql> grant all privileges on . to root@localhost identified by 'admin123' with grant option;
mysql> flush privileges
這裡password()函式是不必要的,也不需要使用flush privileges來執行確認。
password()函式作用是為口令字加密,在程式中mysql自動解釋。
mysql 遠端 MYSQL開啟遠端訪問許可權的方法
1 登陸mysql資料庫 mysql u root p 檢視user表 mysql use mysql database changed mysql select host,user,password from user host user password localhost root a731a...
mysql 遠端 mysql遠端登陸
mysql登入方式有兩種,一種是本機登入,一種是遠端登入。這兩種登入方式在mysql資料庫的user表中都有體現。由於我們不可能總是本地登入,因此需要設定遠端登陸。但是mysql預設不支援遠端登陸,所以需要設定一波。1.登入資料庫。2.切換到mysql資料庫。3.檢視主機和使用者對應情況,其實就是檢...
mysql怎麼遠端連線 MySQL怎麼遠端連線
預設情況下,mysql只允許本地登入,如果要開啟遠端連線,則需要修改 etc mysql my.conf檔案。mysql遠端連線的方法 第一步,修改 etc mysql my.conf 找到bind address 127.0.0.1這一行改為bind address 0.0.0.0即可 第二步,為...