1 進(jìn)入cmd,停止mysql服務(wù):Net stop mysql
成都創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為裕安企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,裕安網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
若是停不掉:Ctrl+Alt+Del打開任務(wù)管理器,在詳細(xì)信息里結(jié)束mysql.exe任務(wù)。
若服務(wù)名無效:來到MySQL的安裝路徑下bin,在命令行中輸入mysqld --install;成功:出現(xiàn)Service successfully install代表你已經(jīng)安裝成功;
2 進(jìn)入bin目錄
mysqld -nt --skip-grant-tables
重新打開一個(gè)管理員命令提示符輸入mysql進(jìn)入重新改密碼就OK了。
再次mysql -u root -p進(jìn)入操作
mysqlupdate mysql.user set anthentication_string=password(‘你的密碼’) where user=‘root’;
mysqlflush privileges;//刷新MySQL的系統(tǒng)權(quán)限
mysqlquit;
再次mysql -u root -p進(jìn)入就可以操作了。
免安裝版的mysql可能會(huì)出現(xiàn)首次登錄不進(jìn)去的情況,解決辦法是:
1、在my.ini文件中mysqld下面加上skip-grant-tables,如圖:
2、重啟mysql;net restart mysql;
3、輸入mysql,出現(xiàn)welcome to mysql字樣,表示進(jìn)入成功,然后show databases;然后use mysql;
4、修改root用戶的密碼;
update mysql.user setpassword=password('新密碼') where user='root' ;
如果是5.7版本以上的則用下面的命令修改密碼:
update mysql.user set authentication_string=password('新密碼') where user='root' ;
5、flush privileges;
6、去掉my.ini中加入的skip-grant-tables,重啟mysql,然后就可以采用新密碼進(jìn)入mysql了。
記住,修改完密碼后必須刪掉skip-grant-tables,否則mysql還是可以不通過密碼進(jìn)入;
7、重啟mysql后再進(jìn)入mysql可能會(huì)提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement?before executing this statement ;
此時(shí)需要輸入命令:set password=password('123456');//此處密碼必須跟上面設(shè)置的密碼一樣;
以前也用過mysql數(shù)據(jù)庫(那時(shí)還是mysql3),可這樣的問題還是頭一次遇到。我想在開發(fā)過程中遇到這類問題的人一定不在少數(shù),那么我們就從這次出現(xiàn)的問題出發(fā)來一起研究一下mysql數(shù)據(jù)庫的賬戶添加問題。先通過控制臺(tái)添加一個(gè)賬戶:mysql INSERT INTO user- VALUES('%','monty',PASSWORD('some_pass'),
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
- '','','','',0,0,0,0);
然后,建立php程序進(jìn)行登錄 htmlbodyh1It works!/h1?php
$link = mysql_connect('localhost', 'monty', 'some_pass');
if (!$link) {
die('Could not connect: ' . mysql_error());}echo 'Connected successfully';
mysql_close($link);
/body/html但是,運(yùn)行后的結(jié)果卻是:
原來,在mysql的這個(gè)版本中(已經(jīng)很久沒有用mysql了,之前的版本沒有經(jīng)過測試),如果使用insert命令來增加一個(gè)賬號(hào)的話,必須在添加后刷新一下特權(quán)表:mysql INSERT INTO user - VALUES('%','monty',PASSWORD('some_pass'),
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
- '','','','',0,0,0,0);
mysql FLUSH PRIVILEGES;
mysql GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' - IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' - IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql GRANT USAGE ON *.* TO 'dummy'@'localhost'; 前兩個(gè)帳戶名稱都是monty,而且都是擁有所有權(quán)限和密碼。但是兩者的區(qū)別在于,第一個(gè)帳戶(monty@localhost)只能通過本地登錄,而第二個(gè)賬戶(monty@%)可以通過任意主機(jī)登錄。值得注意的是,為了能夠使用monty帳戶在任何地方進(jìn)行登錄,這兩個(gè)賬戶同時(shí)存在則是必要的。因?yàn)?,如果沒有本地帳戶(monty@localhost),使用monty帳戶登錄時(shí),mysql_install_db將優(yōu)先考慮創(chuàng)建一個(gè)本地的匿名帳戶。那么結(jié)果將是monty賬戶會(huì)被當(dāng)作一個(gè)匿名帳戶來處理。原因則在于,匿名帳戶擁有一個(gè)比nonty@%賬戶更加具體的host字段值,從而在user表排序的時(shí)候會(huì)相對出現(xiàn)的更早。
上面這個(gè)表中的admin帳號(hào)則只擁有reload和process權(quán)限且沒有密碼,這些權(quán)限允許該帳戶執(zhí)行mysqladmin reload, mysqladmin refresh,mysqladmin processlist和mysqladmin flush-xxx系列命令,但是沒有權(quán)限進(jìn)入任何數(shù)據(jù)庫。dummy帳號(hào)沒有密碼也沒有任何權(quán)限,它只被允許從本地(localhost)登錄mysql。GRANT命令允許使用USAGE來創(chuàng)建一個(gè)帳號(hào)卻不賦予任何權(quán)限。如果你的Mysql采用的是NO_AUTO_CREATE_USER模式,那么通過命令行模式建立一個(gè)沒有密碼的帳號(hào)將會(huì)失敗。為了解決這個(gè)問題,你可以使用IDENTIFIED BY來指定具體的密碼。
MySQL提供跳過訪問控制的命令行參數(shù),通過在命令行以此命令啟動(dòng)MySQL服務(wù)器:\x0d\x0asafe_mysqld --skip-grant-tables\x0d\x0a即可跳過MySQL的訪問控制,任何人都可以在控制臺(tái)以管理員的身份進(jìn)入MySQL數(shù)據(jù)庫。\x0d\x0a需要注意的是在修改完密碼以后要把MySQL服務(wù)器停掉重新啟動(dòng)才會(huì)生效\x0d\x0a先找到mysql.server 然后停止mysql服務(wù)\x0d\x0a# mysqld_safe --skip-grant-tables --skip-networking \x0d\x0a# mysql\x0d\x0ause mysql;\x0d\x0aupdate user set password=PASSWORD("new-password") where user="root";\x0d\x0aflush privileges;
phpmyadmin登陸出現(xiàn)無法登錄MySQL是設(shè)置錯(cuò)誤造成的,解決方法為:
1、首先打開運(yùn)行命令窗口,可以通過按住windows鍵+R的組合鍵來實(shí)現(xiàn),輸入cmd,然后按下回車鍵。
2、這樣就進(jìn)入了doc的命令窗口。
3、切換到我們安裝mysql的盤符。
4、然后再切換到mysql的bin目錄。
5、輸入mysql -uroot -p。
6、提示輸入密碼。
7、輸入mysql密碼之后,然后按下回車鍵,出現(xiàn)welcome的字樣表示登陸成功。
MySQL有時(shí)候忘記了root密碼是一件傷感的事。這里提供Windows 和 Linux 下的密碼重置方法。
Windows:
1.以系統(tǒng)管理員身份登陸系統(tǒng)。
2.打開cmd-----net start 查看mysql是否啟動(dòng)。啟動(dòng)的話就停止net stop mysql.
3.我的mysql安裝在d:\usr\local\mysql4\bin下。
4.跳過權(quán)限檢查啟動(dòng)mysql.
d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables
5.重新打開cmd。進(jìn)到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql\bin\mysqladmin -u root flush-privileges password "newpassword"
d:\usr\local\mysql\bin\mysqladmin -u root -p shutdown 這句提示你重新輸密碼。
6.在cmd里net start mysql
7.搞定了。
Linux:
MySQL root密碼的恢復(fù)方法之一
如果忘記了MySQL root密碼,可以用以下方法重新設(shè)置:
1.KILL掉系統(tǒng)里的MySQL進(jìn)程;
killall -TERM MySQLd
2.用以下命令啟動(dòng)MySQL,以不檢查權(quán)限的方式啟動(dòng);
safe_MySQLd --skip-grant-tables
3.然后用空密碼方式使用root用戶登錄 MySQL;
MySQL -u root
4.修改root用戶的密碼;
MySQL update MySQL.user set password=PASSWORD('新密碼') where User='root';
MySQL flush privileges;
MySQL quit
重新啟動(dòng)MySQL,就可以使用新密碼登錄了。