error 1044 (42000):access denied for user ''@'l...解決
今天試着用不同方式 備份數據,發現一個問題:
用outfile備份沒權限限制問題:
1 SELECT * FROM information_schema.TABLES INTO OUTFILE 'E:\\ts.txt' 2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' 3 LINES TERMINATED BY '\r\n';
但用mysqldump就存在權限問題:
mysqldump -u root -p information_schema > E:\\tmp\\dump.txt
因為是對 information_schema庫操作所有就存在這個權限問題 如果是對新建的庫是不存在的哈!
解決辦法有:
方法一:
在my.ini的[
mysqld]字段加入:
skip-grant-tables
重啟mysql服務,這時的mysql不需要密碼即可登錄數據庫
然后進入mysql
mysql>use mysql; mysql>update user set password=password('新密碼') WHERE User='root'; mysql>flush privileges;
運行之后最后去掉my.ini中的skip-grant-tables,重啟mysqld即可。
修改mysql密碼方法二:
不使用修改my.ini重啟服務的方法,通過非服務方式加skip-grant-tables運行mysql來修改mysql密碼
停止mysql服務
打開命令行窗口,在bin目錄下使用mysqld-nt.exe啟動,即在命令行窗口執行:
mysqld-nt --skip-grant-tables
然后另外打開一個命令行窗口,登錄mysql,此時無需輸入mysql密碼即可進入。
按以上方法修改好密碼后,關閉命令行運行mysql的那個窗口,此時即關閉了mysql,如果發現mysql仍在運行的話可以結束掉對應進程來關閉。
啟動mysql服務。