卸载:
在 Ubuntu 系统上彻底卸载 MySQL 8.0 可以按照以下步骤进行操作:
- 停止 MySQL 服务,输入以下命令:
sudo systemctl stop mysql
- 删除 MySQL 相关文件和文件夹,输入以下命令:
sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
sudo apt-get autoremove -y
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
- 删除 MySQL 用户和组,输入以下命令:
sudo deluser mysql sudo delgroup mysql
- 检查是否还存在其他 MySQL 软件包,输入以下命令:
dpkg -l | grep mysql
- 如果有任何输出结果,请使用以下命令删除它们:
sudo apt-get remove --purge <软件包名称>
- 最后,清除系统缓存并重新启动计算机,输入以下命令:
sudo apt-get clean sudo reboot
完成以上步骤后,您的 Ubuntu 系统上已完全卸载 MySQL 8.0。
安装:
官方文档:MySQL : MySQL 8.0 参考手册
mysql8.0
1.首先更新本地存储库索引,执行
sudo apt update
2.从APT存储库安装MySQL,执行
sudo apt install mysql-server
在安装过程中,可能会出现[Y / n]问题,输入Y继续
3.安装完成后可以输入
mysql --version mysql -V
查看版本
4.安装后,MySQL服务器应自动启动。 要检查它是否正在运行,执行
systemctl status mysql.service
5. 执行 mysql_secure_installation 修改密码不成功
登入到 MySQL
mysql -uroot -p
执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwd';
修改密码
无法连接
输入
netstat -ano|grep '3306'
这表示MySQL 服务器似乎只在本地回环地址(127.0.0.1)上监听了端口 3306 和 33060
这意味着 MySQL 只能接受来自本地主机的连接,并且无法从其他主机访问
您需要在 MySQL 配置文件 my.cnf 中添加或修改以下行:
[mysqld]
bind-address = 0.0.0.0
source my.cnf
然后重启mysql服务再次查看
systemctl restart mysql.service
netstat -ano|grep '3306'
0.0.0.0 表示允许其他主机远程访问
#然后用root加密码链接,还是不行
#mysql8.0不允许root用户远程连接,所以要创建一个新用户。
- 假设您想要创建一个名为 newuser 的用户,您可以使用以下命令:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
- 授权新用户访问所有数据库。为了授予新用户访问所有数据库的权限,请执行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
- 刷新 MySQL 权限以确保更改生效。
FLUSH PRIVILEGES;
-------
使用Navicat链接工具还是无法连接时:
- 修改用户的身份验证方式
如果您无法升级 MySQL 客户端,也可以尝试修改 MySQL 用户的身份验证方式,使其兼容旧版的客户端。您可以使用以下命令修改用户的身份验证方式:
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中,user 是您想要修改身份验证方式的用户名,localhost 表示该用户只能在本地连接 可改为%, MySQL,password 是该用户的密码。
- 修改 MySQL 服务器的默认身份验证方式
如果多个客户端需要连接 MySQL 8.0,并且您不能够升级所有客户端,那么您可以尝试将 MySQL 服务器的默认身份验证方式改为旧版的方式。您可以在 MySQL 配置文件 my.cnf 中添加以下行将默认身份验证方式改为 mysql_native_password:
[mysqld]
default_authentication_plugin=mysql_native_password
--
进入mysql库查看user表
select user,host from user;
% 表示 允许所有IP,远程访问