装了20.04后用Navicat连接自带的mysql一直报错
卸载再装,再卸载再装经历了N多把之后
第一步卸载
卸载
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
重装
sudo apt-get install mysql-server -y
sudo apt install mysql-client -y
sudo apt install libmysqlclient-dev -y
输入如下命令进行检验是否安装mysql成功
sudo netstat -tap | grep mysql
重装之后需要登录
打开mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在文件末尾添加如下指令
skip-grant-tables
重启mysql
sudo service mysql restart
进入mysql
mysql -u root -p
至此直接回车登录进入数据库
使用mysql数据库
use mysql;
由于mysql8.0的新特性无法自己给自己赋权
所以需重新创建一个用户
注意 这里username 和password自己填写
1、新建远程访问用户:create user 'username'@'%' identified by 'password';
2、给远程访问用户授权:grant all privileges on . to 'username'@'%';
3、刷新权限:flush privileges;
如果用Navicat连接的会报不支持caching_sha2_password验证方式的错误。
将远程访问用户的验证方式改为: msyql_native_password
更新auth插件
update user set plugin="mysql_native_password" where User='username';
这个不正确的话试试下面这个
alter user 'username'@'%' identified with mysql_native_password by 'password';
更新完插件后 查询下
mysql 5.7几的版本password字段没有了,更新成authentication_string
select host, user, authentication_string, plugin from user;
plugin的值改成了mysql_native_password即可
最后在打开
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将skip-grant-tables注释掉
将bind 127.0.0.1也注释掉
sudo service mysql restart
应该基本上可以了
mysql卸载重装
参照CSDN博主「开始沸腾了」的原创文章的做法
原文链接:https://blog.csdn.net/fanrongwoaini/article/details/107518693