今天键盘在服务器上安装mysql的时候可谓是困难重重,我安装了mysql后默认是不给外网提供访问的,需要修改权限!将localhost修改为%。这一步做完我就发现我的mysql居然没密码了!然后有两个库也消失了。这....这咋办啊!还能咋办撸起袖子就是干!
令人感到诡异的是我其他电脑可以通过密码连接上服务器的mysql,但是服务器本身却没有密码,没有库!
我执行的SQL语句:
update user set host = '%' where user = 'root';
我先开始以为是我安装错了,或者是其他问题!emmm....直接二话不说重装服务器,就是这么强...结果重启服务器后发现还是不行!最后一通百度下我发现了答案!
我们的user表的host字段代表可访问数据库的地址,我上面执行的那段语句直接把localhost给替换成%号了,所以本地访问不行。没有其他的权限!解决办法很简单!
第一步
首先在你当前这个SSH连接中关闭MySQL数据库
service mysqld stop
打开MySQL数据库
mysqld_safe --skip-grant-tables
这边会阻塞,这时就不要去动这个SSH链接了!
第二步
新建一个SSH链接,输入mysql进行数据库操作
选择mysql
use mysql;
然后插入一条数据
INSERT INTO `mysql`.`user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `Event_priv`, `Trigger_priv`, `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`, `password_expired`) 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', 'mysql_native_password', '', 'N');
PS:如果user表中host字段有localhost就将那条数据删除,然后在insert上面的sql语句!密码为空。做完这些就可以去设置你的密码了!
网友评论