安装

通过包管理工具apt安装,在ubuntu20.04下mysql版本默认为8.0,而ubuntu18.04在截至本文完成时默认版本为5.7。如果想在20.04下安装5.7版本,可以看这篇连接。

首先,更新软件包列表索引:

sudo apt update

安装MySQL:

sudo apt install mysql-server

查看MySQL版本:

mysql --version

由于本地系统为ubuntu20.04,MySql版本号为8.0。

查看服务状态,

service mysql status

状态正常,到此安装完毕!

配置

此时,mysql客户端已经作为服务器的依赖安装到本地,故可以通过命令行登录服务器。mysql8.0,root 用户默认通过 auth_socket 插件授权,而 auth_socket 插件通过 Unix socket 文件来验证所有连接到 localhost 的用户。这意味着你不能以用户–密码的方式,登录root账户。通过指令以root身份登录:

sudo mysql

但是,通过第三方程序是无法连接到数据库的,例如JDBC、pymysql等。可以通过修改mysql下的user表,配置密码方式以root身份登录:

use mysql;
select user, host, plugin from user;

将root对应的plugin由 auth_socket 改为 mysql_native_password 即使是mysql8.0也是,否则影响后续远程连接:

#MySQL8.0必须先执行此步骤设置密码,MySQL5.7可以选择先安装下面的secure!!!
alter user 'root'@'localhost' identified with mysql_native_password by '密码';flush privileges;exit;

至此,可以不用输入sudo,通过密码的方式登录数据库:

mysql -uroot -p

增强数据库服务的安全性

执行:

sudo mysql_secure_installation

键入Enter后继续,

设置root用户密码,并反馈当前密码强度,询问是否确认密码:

询问三个问题,并根据提供的答案来设置系统的安全性。

  1. 是否关删除匿名测试用户的信息。
  2. 是否禁止远程root登录。只允许本地登录root用户,并拒绝远程连接。
  3. 是否删除 test 数据库。

根据自身需求键入相应的y or n

最后输入 y ,重新加载特权表使上述配置生效。返回 All Done!,设置成功。

远程连接

如何连接ubuntu服务器下的mysql数据库?

修改配置文件:

#MySQL8.0!!!
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#MySQL5.7!!!
sudo vim /etc/my.cnf

注释下图标记行,解除地址绑定:

重启mysql服务:

sudo service mysql restart

登录mysql后执行:

use mysql;
update user set host='%' where user='root';
flush privileges;#MySQL8.0执行这行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#MySQL5.7执行这行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;flush privileges;

卸载

sudo apt purge mysql-* # mysql后用tab补全,把所有与mysql相关的卸载sudo rm -rf /etc/mysql/ /var/lib/mysqlsudo apt autoremovesudo apt autoclean

忘记密码(ERROR 1045)

修改配置文件,在[mysqld]后添加 skip-grant-tables (登录时跳过权限检查):

#MySQL8.0!!!
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#MySQL5.7!!!
sudo vim /etc/my.cnf

重启服务后可以无密码登录mysql:

sudo service mysql restartmysql

mysql8.0

use mysql;
#必须先将authentication_string置为空!
update user set authentication_string='' where user='root';flush privileges;
#设置新密码
ALTER user 'root'@'%' IDENTIFIED BY '新密码';

mysql5.7

use mysql;
update user set authentication_string = password('新密码') where user = 'root';

最后记得删除配置文件中的 skip-grant-tables 并重启服务,否则会影响远程连接!

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码策略:

SHOW VARIABLES LIKE 'validate_password%';

参照上图变量名修改策略:

set global validate_password.policy=0
set global validate_password.length=1;

最后修改密码:

alter user 'root'@'%' identified by 'root';

登录成功:

【究极详细版】Ubuntu安装配置MySQL相关推荐

  1. Ubuntu安装配置Mysql

    http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html 三种安装方式: 1. 从网上安装 sudo apt-get install m ...

  2. [转载]Ubuntu安装配置Mysql

    http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html 三种安装方式: 1. 从网上安装 sudo apt-get install m ...

  3. Ubuntu 安装 配置 Mysql

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

  4. Ubuntu 安装配置 MySql

    为什么80%的码农都做不了架构师?>>>    安装MySQL sudo apt-get install mysql-server 启动MySQL sudo service mysq ...

  5. 虚拟机安装ubuntu及配置mysql进行远程访问详细过程

    虚拟机安装ubuntu及配置mysql进行远程访问详细过程 1.虚拟机准备及安装 选择虚拟机Oracle VM VirtualBox,下载地址:https://www.virtualbox.org/w ...

  6. 阿里云安装配置mysql(centos版)

    阿里云安装配置mysql(centos版) 阿里云安装配置mysql(centos版) 1,安装mysql数据库 a)下载mysql源安装包:wget http://dev.mysql.com/get ...

  7. 将archlinux 2013-06-01版,安装配置为个人工作站

    本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso.首先请看看我安装完成之后的效果. 图一,是第一个虚拟桌面及右键菜单图: 图二,是第二个虚拟桌面效果图.后几个虚拟桌面 ...

  8. 一篇解决:Ubuntu安装配置、软件、工具、快捷键

    Ubuntu安装配置.软件.工具.快捷键 记录作者配置windows.Ubuntu双系统的各种细节. 此帖说明了Ubuntu初期配置的许多问题,也介绍了很多使用技巧,持续更新. 文章目录 Ubuntu ...

  9. 【多图超详细】从零开始安装配置Cuckoo sandbox并提交样本进行分析

    [多图超详细]从零开始安装配置Cuckoo sandbox并提交样本进行分析 文章目录 [多图超详细]从零开始安装配置Cuckoo sandbox并提交样本进行分析 1. 功能介绍 1.1主要功能 1 ...

最新文章

  1. java数据类型的一些注意事项
  2. HTML第十章作业代码,HTML教程10第十章.doc
  3. TenSorFlow随笔-除法
  4. Spring mvc ContextLoaderListener 原理解析
  5. 使用dom breakpoint找到修改属性的javascript代码
  6. Java 9:流API的增强
  7. NHibernate教程(5)--CRUD操作
  8. C语言int r(int m),INT(M)表示什么意思?
  9. 三星显示、LG已开始为苹果iPhone 13生产OLED屏幕
  10. numpy ndarray 数组对象
  11. php js特效代码如何用,phpstorm编写代码增加代码爆炸效果
  12. Linux应用总结:自动删除n天前日志
  13. 入门 Angular 2 杂记
  14. kuka机器人齿轮箱油_库卡KUKA机器人保养润滑油00-144-898
  15. Ubuntu 18.04 语言学相关软件的安装
  16. Java菜鸟入坑——字符串中输出数字
  17. FastDFS 原理介绍
  18. uva424 Integer Inquiry
  19. 《JETS Jointly Training FastSpeech2 and HiFi-GAN for End to End Text to Speech》
  20. Linux之CD驱动器读取命令

热门文章

  1. oracle内存分配公式,oracle内存分配和调整
  2. postfix发送邮件测试不成功——可能是用户名大小写问题
  3. C++简介 / 低级语言 / 高级语言
  4. 实战:k8s之拓扑分布约束-2022.2.19
  5. 公司员工 经验——少说话,多做事
  6. RPM打包java jar项目
  7. springboot基于VUE框架的商城综合项目设计与实现毕业设计源码
  8. 苹果se2_苹果SE2双卡双待3月发布,你会买吗?
  9. 【读什么】APP,你私人的阅读代理机
  10. android截屏元素不全,截图总不全?2招教你网页完整截图和全文拼图