如果出现旧版本没有卸载干净就去目录cd /var/lib/dpkg/
删除一切和MySQL有关的东西
然后删除所有whereis mysql
的东西以及find / -name mysql
的东西
实在不行就把find / -name *mysql*.*
的全删了
8 .0之前版本
8 .0之前版本只要设置为免密登录
然后使用sql
https://www.51cto.com/article/629065.html?pc
use user;
update user set authentication_string = password('新密码') where user.user = root
就可以完成修改
8 .0之后版本
改密码和之前不一样了。
8.0以后需要使用sql
alter user'root'@'localhost' IDENTIFIED BY '新密码';
# 如果需要指明认证插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY "your_password";
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "your_password";
这里有几点需要注意
1-8.0以后直接修改密码字符串将无法完成修改,[其实修改了但是mysql本身需要加密保存],所以他会把你密码当做密文处理,当然无法验证了;
2-在修改为免密登录模式以后,上去不要直接执行这句,否则会报错:不能在免密模式下修改
,我们直接使用sql删除原密码,然后退出关闭免密登录模式
再回来执行这句,才能正确完成
删除密码的sql
update user set authentication_string = "" where user.user = root
3-两次切换免密模式以及修改数据库密码清空数据库密码后请执行一次systemctl restart mysql
关于进入免密码模式
进入文件/etc/mysql/my.cnf
不同版本可能出现在/etc/my.cnf
最简单的方法就是执行find / --name my.cnf
直接查找;
打开以后我们在其中加入内容
#千万别把[]里的内容漏了
[mysqld]
skip-grant-tables
然后再输入
mysql -u root
就可以进行免密登录删除密码了,注意是要先删除,关闭免密再执行修改
,否则修改失败,我就是因为没有关闭一直失败,卡了半天
保险起见可以在修改前修改后执行一次
flush privileges
这样就解决了密码忘记的问题了;
后续补充安装问题
首先访问
下载链接
选择好mysql版本和系统版本后
下载tar包,通常是DEB Bundle
也可以直接在服务器上执行
sudo wget https://dev.mysql.com/downloads/file/?id=520019
回到服务器执行解压操作
tar -xvf mysql-server_8.0.30-1ubuntu20.04_amd64.deb-bundle.tar
得到这坨东西
然后我们逐级执行安装即可,按顺序来
sudo dpkg -i mysql-common_8.0.30-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-server-core_8.0.30-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-server_8.0.30-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-client-core_8.0.30-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-client_8.0.30-1ubuntu20.04_amd64.deb
如果遇到了依赖问题使用如下命令
sudo apt-get install -f
ps:我直接执行这句居然直接安上了.奇怪
解决外部无法访问的问题
教程
进入mysql安装目录下的mysql.conf.d目录
cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
将bind属性注释掉
修改需要外部访问账户的host
属性为%
[任意位置]或者具体的ip
即可,可以使用192.1.%.%
的方式进行模糊匹配