MySql拾遗

时间:2023-03-08 22:06:16

1.“1130-Host is not allowed to connect to this MySQL server”

满世界的人都告诉你,到user表中把root + localhost的“localhost”修改为“%”;

满地球的人都告之:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rootpasswd' WITH GRANT OPTION(需要把rootpassword替换为真实的密码;

但是却没有人告诉你需要重启一下MySQL的服务;

2.mysqld: 未被识别的服务

重启mysql的时候发现了以上的错误,那是因为在/etc/init.d里面没有mysql的启动服务;在根目录项目使用“find -name mysql.server",将此文件拷贝到/etc/init.d中,然后改名为mysqld或者其他什么名称即可。

3.can't connet local mysql to "/var/.../mysql.sock"

根目录”find -name mysql.sock",找到此文件以及路径 然后通过“mysql --socket=XXX”将socket路径替换;

4.结合步骤:

mysql --socket=/tmp/mysql.sock

(有时可能会需要你输入mysql -u root -p --socket=/tmp/mysql.sock,然后输入密码即可)

mysql> use mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') Where user='root';(注意分号)

mysql> update user set host='%' where host='localhost' and user='root';

之后重启即可;

mysql -u root -p --socket=/tmp/mysql.sock

之后会让你录入你之前改的密码

改变了localhost为%之后还有问题,那就是它失去了在本机登陆的权限;这需要你使用客户端工具在创建一个localhost的权限;或者就不需要在本机上登录;

至此,root用户密码可以重置。

5. Cannot load from mysql.proc

没有升级,应该是因为备份增加参数-R导致的;

1)find -name mysql_upgrade:定位升级文件位置
2)cd到文件位置;
3)mysql_upgrade -u root -p + Enter,录入密码即可;
4)service mysqld restart