Ubuntu20.04上安装MySQL8.0(绝对保证能够正常使用)
今天在学习 Spark 连接 MySQL时发现还没安装,便参考了厦门大学实验室的Blog进行操作。但安装完成之后发现没有显示设置密码的选择,但又改不掉root密码(头开始痛起来)。
故记录一下安装MySQL并新建账户授权的过程。
方法一
-
在 MySQL 官网下载安装包
-
在 Ubuntu 中使用终端命令进行解压
# 输入命令, dpkg 是解压的意思,最后的参数是安装包名称,一定要写对 sudo dpkg -i 安装包(不能出错)
解压显示的 GUI 页面直接选择
OK
后 <确定># 输入命令为 如果显示 Yes/No 填Y sudo apt update sudo apt upgrade # 这里填完 Y 之后会经过比较长的下载时间,大概 30 分钟后进行 GUI 页面 sudo apt install mysql-community-server
-
安装完成后启动 MySQL 服务并登录 Root 用户
# 启动和关闭mysql服务器 service mysql start service mysql stop
确认是否启动成功,MYSQL 节点处于LISTEN状态表示启动成功 (重要),MySQL 8.X 这里会显示两条信息
进入MySQL Shell界面:这里会要求输入 MySQL Root 用户密码
方法二(无法设置 Root 密码)
Ubuntu在20.04版本中,源仓库中MySQL的默认版本已经更新到8.0。可以直接使用apt安装。
apt 安装MySQL
sudo apt-get update #更新源
sudo apt-get install mysql-server #安装
sudo apt install net-tools
MySQL服务管理
sudo service mysql status # 查看服务状态
sudo service mysql start # 启动服务
sudo service mysql stop # 停止服务
sudo service mysql restart # 重启服务
登录
查看密码使用这条查看
sudo cat /etc/mysql/debian.cnf
使用默认账户登录
mysql -u debian-sys-maint -p
或直接进入 Mysql
sudo mysql
找不到初始密码可以在my.ini中 [mysqld] 添加:
skip-grant-tables
创建新用户
因为方法二尝试修改了root账户的密码似乎不起作用,于是创建一个新的账户来作为日常使用
新建账户
新建一个root用户,密码为root
create user 'root'@'%' identified by 'root';
授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
修改MySQL数据库配置文件无密码登录后,修改密码报错为以下
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
则需先执行:FLUSH PRIVILEGES;
后再执行修改密码命令即可。
重置密码
重置root账户密码为 password
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
或者执行
SET PASSWORD FOR root@'localhost' = 'password';
卸载MySQL
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
注意如果要卸载需要卸载干净!避免影响以后的重新安装