今天在操作数据库的是否发现突然无法启动MYSQL服务,想了想原因是因为自己改动了my.ini文件导致的。所以大家千万不要随便改哦~
解决无法启动mysql的问题很容易,在安装根目录下都会有my.ini文件的备份。我们可以根据以前的_bak文件直接恢复。
还有一个问题就是 "Host 'localhost' is not allowed to connect to this MySQL server"
重装MYSQL后,发现MYSQL数据库密码为空,则update了 user表里的root密码,重新连接,发现出现"Host 'localhost' is not allowed to connect to this MySQL server" ,真是离奇的事情一件接一见
后来回想了一下发现,因为只是update了root,但是MYSQL是有个访问控制表,root的访问控制表未更新,就导致了无法访问mysql
网上找到的解决方法,应该是跳过该表就可以直接使用了,但是这个放在服务器上还是会有一定的风险,那就是任何人在任何地方都可以访问你的MYSQL,如果安全重要的话还是重新装一下数据库好了。
编辑 my.ini linux下为/etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
目的是为了:
跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效
重启mysql服务!
解决无法启动mysql的问题很容易,在安装根目录下都会有my.ini文件的备份。我们可以根据以前的_bak文件直接恢复。
还有一个问题就是 "Host 'localhost' is not allowed to connect to this MySQL server"
重装MYSQL后,发现MYSQL数据库密码为空,则update了 user表里的root密码,重新连接,发现出现"Host 'localhost' is not allowed to connect to this MySQL server" ,真是离奇的事情一件接一见
后来回想了一下发现,因为只是update了root,但是MYSQL是有个访问控制表,root的访问控制表未更新,就导致了无法访问mysql
网上找到的解决方法,应该是跳过该表就可以直接使用了,但是这个放在服务器上还是会有一定的风险,那就是任何人在任何地方都可以访问你的MYSQL,如果安全重要的话还是重新装一下数据库好了。
编辑 my.ini linux下为/etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
目的是为了:
跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效
重启mysql服务!