ubuntu20下安装mysql8 完整教程
2022.03

这里使用 ubuntu 20 代号focal的镜像源 使用tee命令

tee  /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
apt update 刷新本地源

安装mysql8

apt install mysql-server  //执行安装

//之前安装过可以先清除mysql
apt purge mysql-server
apt purge mysql-common
rm -rf /var/log/mysql    //日志文件
rm -rf /var/log/mysql.*
rm -rf /var/lib/mysql    //数据库文件慎重删除
rm -rf /etc/mysql        //配置文件
apt install mysql-server --fix-missing --fix-broken //修复安装

安装完成后修改配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address  修改成0.0.0.0 否则无法远程登录

sql_mode=  
去掉严格模式

执行重启

service mysql restart

登录mysql

sudo mysql -u root -p  # -u 指定用户名 -p需要输入密码
或
sudo mysql #可以不需要指定用户名密码

选择mysql库

use mysql;

mysql8.0默认的加密方式是“caching_sha2_password”,而navicat只支持以前的”mysql_native_password”,所以接下来修改密码加密方式

CREATE USER 'root'@'%' IDENTIFIED BY 'root';
//创建远程用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root的密码';
//这个操作是mysql 8.0中得加的

任何远程主机都可以访问数据库

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

刷新权限

FLUSH PRIVILEGES;