ubuntu20.04 mysql8 完全卸载后重新安装

云服务器安装mysql8 遇到很多坑 特此记录。

远程连接部分参考了:https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/的内容

1、删除mysql的数据文件

sudo rm /var/lib/mysql/ -R

2、删除mysql的配置文件

sudo rm /etc/mysql/ -R

3、自动卸载mysql(包括server和client)

sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

# 或者

sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean

4、在终端中查看MySQL的依赖项

dpkg --list|grep mysql

5、安装MySQL服务

sudo apt-get update # 更新源
sudo apt-get install mysql-server # 安装

6、mysql服务管理

sudo service mysql status # 查看服务状态
sudo service mysql start # 启动服务
sudo service mysql stop # 停止服务
sudo service mysql restart # 重启服务

7、登陆

# 查看密码
sudo cat /etc/mysql/debian.cnf
# 使用默认用户登陆
mysql -u debian-sys-maint -p
# 或者直接进入mysql 
sudo mysql

8、创建新用户

# 新建用户admin 密码是12345678
create user 'admin'@'%' identified by '12345678';

9、修改密码

在MySQL 8.04前,执行:SET PASSWORD=PASSWORD(‘[新密码]’);但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。 

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
# 或者
mysqladmin -u root -p password '新密码'
# 新密码即要修改的密码,回车之后会要求让输入原始密码,然后就修改了密码

10、查看MySQL 当前加密方式

select host,user,plugin from user;
# 使用命令将他修改成mysql_native_password加密模式
update user set plugin='mysql_native_password' where user='root';

以下内容学习了如何远程连接 MySQL 数据库,阿里云腾讯云允许远程连接教程 - 卡拉云

11、设置允许远程连接1

# 首先打开 mysqld.cnf 配置文件,将 bind - address 修改成0.0.0.0 或者 * 或者 :: ,也可以是单独固定的ip 这样更安全
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 在某些 MySQL 版本的配置文件中,没有 bind - address 这一行,这种情况下,在合适的位置加上就可以了。
# 然后重启 MySQL 服务,使刚刚编辑的 mysqld.cnf 文件生效
sudo systemctl restart mysql

ubuntu20.04 mysql8 完全卸载后重新安装_第1张图片

12、设置允许远程连接2

# 服务器端登陆mysql, 创建或者修改用户为允许远程用户
# 1.创建
CREATE USER 'kalacloud-remote'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# 2.修改现有用户
ALTER USER 'kalacloud-remote'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# 3.给远程账号赋予权限
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kalacloud-remote'@'%' WITH GRANT OPTION;
# 4.刷新 MySQL 的系统权限相关表,更新缓存。
FLUSH PRIVILEGES;
# 5.退出mysql
exit
# 6.配置服务器内置防火墙
sudo ufw allow from remote_IP_address to any port 3306 # 使用该命令授权某一台(ip)服务器访问。
sudo ufw allow 3306 # 当然,你也可以允许任意计算机远程访问数据库。 
# 7.远程连接测试
mysql -u username -h mysql_server_ip -p

 

你可能感兴趣的:(mysql,debian,数据库)