解决mysql操作1045错误,1153错误和1130错误
一、ERROR 1045 (28000): Access denied for user 'root'@'119.29.194.112' (using password: YES)
遠(yuǎn)程連接數(shù)據(jù),發(fā)現(xiàn)報(bào)1045錯(cuò)誤,原因是本地的ip沒(méi)有訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)的權(quán)限。
解決方法:
1、進(jìn)入數(shù)據(jù)庫(kù);
2、查看是否有權(quán)限:
use mysql;
#查看本地ip是否有權(quán)限
select user,password,host from user; ? ?
可以看到host列中只有l(wèi)ocalhost主機(jī),沒(méi)有119.29.194.112,所以root用戶(hù)在119.29.194.112主機(jī)上沒(méi)遠(yuǎn)程訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的權(quán)限,因此沒(méi)有我們需要將119.29.194.112也添加到這里。
3、授權(quán):
#授予指定ip主機(jī)對(duì)數(shù)據(jù)庫(kù)的所有權(quán)限,包括遠(yuǎn)程訪(fǎng)問(wèn)權(quán)
grant all privileges on *.* to root@"119.29.194.112" identified by "密碼";
?
?#如果想要root用戶(hù)在任意主機(jī)都有遠(yuǎn)程操作數(shù)據(jù)庫(kù)的所有權(quán)限,則將ip換為%
grant all privileges on *.* to root@"%" identified by "密碼"; ?
?
?#授權(quán)立即生效
?flush privileges; ?
4、現(xiàn)在再次查看是否擁有權(quán)限,輸入:select user,host from user; 可以看到host列已經(jīng)有了我們剛才添加主機(jī)ip或者%,說(shuō)明已經(jīng)有訪(fǎng)問(wèn)的權(quán)限了;再次遠(yuǎn)程連接,就能正常連接上數(shù)據(jù)庫(kù)了。
?
二、ERROR 1153 : Got a packet bigger than 'max_allowed_packet' bytes。
導(dǎo)入數(shù)據(jù)庫(kù)腳本文件進(jìn)行建表的時(shí)候,發(fā)現(xiàn)表導(dǎo)入失敗,查看日志,報(bào)了1153 ERROE,原因是數(shù)據(jù)庫(kù)默認(rèn)對(duì)導(dǎo)入的數(shù)據(jù)大小做了限制,因此我們可以通過(guò)修改數(shù)據(jù)庫(kù)的該變量配置數(shù)值。
1、臨時(shí)修改:
#修改為512M
set global max_allowed_packet=524288000;
2、長(zhǎng)久修改:
修改my.cnf(centos下路徑為/etc/my.cnf。windows下為my.ini),在 [MySQLd] 部分添加下列配置(如存在則調(diào)整其值),并重啟mysql:
max_allowed_packet=256M (根據(jù)實(shí)際情況調(diào)整數(shù)值)
可通過(guò)命令查看是否修改成功:
show VARIABLES like '%max_allowed_packet%’;
?
三、ERROR 1130: host 'localhost' not allowed to connect to this MySQL server。
由于不小心將mysql數(shù)據(jù)庫(kù)本地連接的root刪除了,之后連接MySQL,一直報(bào)ERROR 1130: host 'localhost' not allowed to connect to this MySQL server。
解決方法:
1、停止MySQL服務(wù),打開(kāi)cmd命令行,執(zhí)行net stop mysql;
2、在mysql的安裝路徑下,找到配置文件my.ini,找到[mysqld]這一欄,在這部分最下面加入skip-grant-tables,顧名思義,就是在啟動(dòng)mysql時(shí)不啟動(dòng)grant-tables授權(quán)表,保存。保存的時(shí)候可能會(huì)因?yàn)闄?quán)限不夠出現(xiàn)拒絕保存的情況,這時(shí)可以右鍵my.ini文件-->屬性-->安全-->編輯,修改文件的讀寫(xiě)權(quán)限。
3、重啟mysql服務(wù),net start mysql;
4、執(zhí)行mysql -uroot -p,回車(chē),再回車(chē),即可進(jìn)入mysql數(shù)據(jù)庫(kù);
5、在本機(jī)登入mysql后,更改 “mysql” 數(shù)據(jù)庫(kù)里的 “user” 表里的 “host” 項(xiàng),將”localhost”改稱(chēng)'%'。
mysql>use mysql;
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;??? #刷新用戶(hù)權(quán)限表
6、插入本地登錄的用戶(hù):
mysql>insert into user values('localhost', 'root', '', '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', 'Y', 'Y', 'Y','','','','',0,0,0,0,'','');
此時(shí)本地連接的用戶(hù)localhost密碼為空
7、修改root密碼:
(1)用set password 方式修改root密碼:
mysql> set password for?root@'localhost'=PASSWORD('12345');
執(zhí)行上述命令后出現(xiàn)錯(cuò)誤:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
注意:以skip-grant-tables方式啟動(dòng)mysql后,不能用直接用set password的方式修改root密碼,須注釋skip-grant-tables, 然后重啟服務(wù),連接數(shù)據(jù)庫(kù)修改密碼。
(2)用update方式修改root密碼正常:
mysql> update user set password=password("123") where user="root";
mysql>flush privileges;?
?(3)不連接數(shù)據(jù)庫(kù),直接在cmd下修改密碼:
mysqladmin -uroot -p舊密碼 password 新密碼,此種方式修改密碼也不能在以“skip-grant-tables“方式啟動(dòng)mysql后進(jìn)行
如:mysqladmin -uroot -p123456 password 1234
8、退出MySQL,在配置文件中注釋:skip-grant-tables,重啟mysql服務(wù)
9、本地重新連接mysql數(shù)據(jù)庫(kù),輸入修改后的密碼,連接成功。
?
總結(jié)
以上是生活随笔為你收集整理的解决mysql操作1045错误,1153错误和1130错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在centos服务器安装MySQL数据库
- 下一篇: 图片文字识别(一):tesseract-