赞
踩
目录
4.将第一步文件中的skip-grant-tables注释掉,并重启MySQL服务器
ubuntu虚拟机:18.04Ubuntu
mysql:5.7.40
长时间没有操作mysql了,今天有事需要访问一下,于是打开终端,输入mysql -uroot -ppassword 登录访问:报错ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104
根据报错提示检索,查看了mysql的进程,错误日志,mysql的3306端口以及修改了mysql相关的配置文件.cnf。均没有解决,后来继续登录还会报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)。反正就各种报错,无法访问和登录。
错误日志部分截图:
root@yh-virtual-machine:~#mysql -uroot -h 127.0.0.1 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104
root@yh-virtual-machine:~# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
解决了一晚上终于找到了解决方案,最终也将之完美处理了,下面是具体的解决步骤。
注:前期操作可能操作的mysql配置文件没有找对,网上大部分让操作的是/ect/my.cnf文件,而我电脑上真正的mysql配置文件是:/ect/mysql/mysql.conf.d/mysqld.cnf
在/etc/mysql/mysql.conf.d/mysqld.cnf文件下的[mysqld]字段下加入一行“skip-grant-tables”
sudo systemctl restart mysql
mysql
use mysql
可以使用show databases查看本地MySQL上有哪些数据库,选择mysql
update user set authentication_string=password('123456') where user='root' and Host ='localhost';
可以使用show tables;查看mysql中有哪些表,user在其中。
MySQL错误Incorrect file format解决方案:
用REPAIR命令修复OK
check table <表名>;#检查表 REPAIR TABLE <表名> USE_FRM;#修复表
update user set plugin="mysql_native_password";
flush privileges;
如果报错提示其他表有3.4的报错,就对其执行一下3.4再执行3.6。
quit
sudo systemctl restart mysql
这是因为user表中是空的,并没有写入root信息和验证。
在配置文件中添加或修改下面两项: (文件中没有sql_mode项添加后不知sql_mode是否起作用,反正需要安全模式进入mysql)
- sql_mode=NO_ENGINE_SUBSTITUTION
- skip-grant-tables
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
需要把STRICT_TRANS_TABLES去掉,即改为:sql_mode=NO_ENGINE_SUBSTITUTION注:简单来说STRICT_TRANS_TABLES这个是启用严格模式,进入安全模式后如果启用了严格模式向表插入数据插入不了的;
insert into mysql.user(Host,User,authentication_string) values("%","root",password("123456"));
update mysql.user set `Select_priv` = 'Y', `Insert_priv` = 'Y', `Update_priv` = 'Y', `Delete_priv` = 'Y', `Create_priv` = 'Y', `Drop_priv` = 'Y', `Reload_priv` = 'Y', `Shutdown_priv` = 'Y', `Process_priv` = 'Y', `File_priv` = 'Y', `Grant_priv` = 'Y', `References_priv` = 'Y', `Index_priv` = 'Y', `Alter_priv` = 'Y', `Show_db_priv` = 'Y', `Super_priv` = 'Y', `Create_tmp_table_priv` = 'Y', `Lock_tables_priv` = 'Y', `Execute_priv` = 'Y', `Repl_slave_priv` = 'Y', `Repl_client_priv` = 'Y', `Create_view_priv` = 'Y', `Show_view_priv` = 'Y', `Create_routine_priv` = 'Y', `Alter_routine_priv` = 'Y', `Create_user_priv` = 'Y', `Event_priv` = 'Y', `Trigger_priv` = 'Y', `Create_tablespace_priv` = 'Y' where user='root';
flush privileges;
注释掉或改正6.1中添加修改的部分。
1、https://blog.csdn.net/m0_37657841/article/details/90046238
2、https://blog.csdn.net/tgdzsjh/article/details/105411581
3、https://www.qycn.com/xzx/article/7071.html
4、https://blog.csdn.net/u012232730/article/details/96878696
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。