服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - ubuntu20安装配置mysql8.0.23步骤详解

ubuntu20安装配置mysql8.0.23步骤详解

2023-05-17 13:36ponponon Mysql

这篇文章主要为大家介绍了ubuntu20安装配置mysql8.0.23步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

网上安装配置mysql教程纷繁杂乱。我常折腾wsl、虚拟机、树莓派,多是使用apt包管理器、基于ubuntu的linux发行版。
记录常用到的安装和配置mysql教程,作为笔记和踩坑日志,便复用。

本教程是在ubuntu20上使用apt安装mysql8.0并处理相关配置,以及开启远程连接可被其他电脑访问。
包含一下内容:

  • mysql8.0的安装(使用apt包管理器安装)
  • mysql配置(初始化密码、开启远程访问权限)

centos等可能和ubuntu存在差异,请参考其他教程

前提

实验平台:ubuntu20.04.2目标mysql版本:8.0.23

ubuntu20安装配置mysql8.0.23步骤详解

?
1
2
bot@ubuntu:~/Desktop/python/django/2$ mysql --version
mysql  Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

安装

ubuntu中安装mysql只要一行命令就可以了 sudo apt install mysql-server

?
1
2
3
4
5
6
7
8
9
10
bot@ubuntu:~/Desktop/python/django/2$ sudo apt install mysql-server
[sudo] bot 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
mysql-server 已经是最新版 (8.0.23-0ubuntu0.20.04.1)。
下列软件包是自动安装的并且现在不需要了:
  linux-headers-5.4.0-42 linux-headers-5.4.0-42-generic linux-image-5.4.0-42-generic linux-modules-5.4.0-42-generic linux-modules-extra-5.4.0-42-generic
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

配置

注意事项

通过apt安装的mysql不需要像其他平台那样开启服务,因为已经默认开启,并且服务名叫做mysql,而不是mysqld

ubuntu20安装配置mysql8.0.23步骤详解


上图中的做法这里并不需要

不需要做的事情:

  • 启动
  • 设置开机启动

因为,这两件事情已经通过apt自动完成了

MySQL服务管理

?
1
2
3
4
sudo service mysql status # 查看服务状态
sudo service mysql start # 启动服务
sudo service mysql stop # 停止服务
sudo service mysql restart # 重启服务

查看mysql状态

输入service mysql status就可以看到mysql正在运行中了,差不多要占350MB的内存

?
1
2
3
4
5
6
7
8
9
10
11
12
13
bot@ubuntu:~/Desktop/python/django/2$ service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-02-10 16:15:50 CST; 17min ago
    Process: 1008 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 1168 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 4620)
     Memory: 395.2M
     CGroup: /system.slice/mysql.service
             └─1168 /usr/sbin/mysqld
2月 10 16:15:45 ubuntu systemd[1]: Starting MySQL Community Server...
2月 10 16:15:50 ubuntu systemd[1]: Started MySQL Community Server.

登录

方法一:默认账户登录

查看密码使用sudo cat /etc/mysql/debian.cnf这条查看

?
1
2
3
4
5
6
7
8
9
10
11
12
13
bot@ubuntu:~/Desktop/python/django/2$ sudo cat /etc/mysql/debian.cnf
[sudo] bot 的密码:
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = SffnwAJrKhIFZ2tO
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = SffnwAJrKhIFZ2tO
socket   = /var/run/mysqld/mysqld.sock

方法二:直接进入mysql命令:sudo mysql

本地 root 用户

到了关键的一步,其实现在你的数据库中就有一个叫做 host 字段为 localhost 的 root 的用户我们需要做如下几件事情:

  • 修改初始 root 用户的密码(修为我们自己的密码)

不需要授予访问权限等操作,因为默认已经有了

重置密码

重置 root 账户密码

?
1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
?
1
FLUSH PRIVILEGES;

远程root 用户

如果需要远程登陆:

  • 创建一个 host 字段为 % 的 root 用户(创建用户的同时设置密码)
  • 授权所有数据库的访问权限
  • 刷新权限列表

有些 uu 就会很奇怪为什么要创建两个 root 用户呢?这个和 mysql 的用户管理方式有关系:localhost 表示本机登录;% 表示远程登陆。

如果 root 用户只有 % ,那就只能除了本机外的其他计算机才能登陆 mysql server,如果用户只有 localhost,那只有本机可以登录,远程计算机不能登录 mysql server

那么 mysql 为什么要这么设计呢?可能是为了安全吧!这样我们可以为 root 设置两个不同的密码,localhost 环境下设置一个很简单的密码;% 环境下就可以极其复杂

诸如:MnRmsrdm9wjkT5XC9Y2F5b4IouAPZBfx (注意 mysql 的密码有长度限制,好像是 32 个字符长度)

新建一个 host 为 % 的 root用户,密码随意

?
1
create user 'root'@'%' identified by 'yourpassword';

授权

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

刷新权限

?
1
FLUSH PRIVILEGES;

通过如下的方式查看我们的用户信息情况

?
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> use mysql
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| %         | root             | *96E7A848AB10957950D4E01EE8D60E361205A073                              |
| localhost | debian-sys-maint | $A$005$)h&}?mq<1rx*2^ut5na8v15kXP0XBBiK63RFLJBF2vHY0DYnmVHNA/PoHA |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *96E7A848AB10957950D4E01EE8D60E361205A073                              |
+-----------+------------------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

ubuntu20安装配置mysql8.0.23步骤详解

远程连接

光设置需要登陆用户的 host 为 % 是不够的,因为 mysql 的配置文件中静止了远程登录,需要去修改一下配置文件。

如果你遇到了这个问题,并不需要修改防火墙等等,只需按我如下的操作即可。

ubuntu20安装配置mysql8.0.23步骤详解

先关停mysql服务

?
1
sudo systemctl stop mysql

编辑mysql配置文件

?
1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

ubuntu20安装配置mysql8.0.23步骤详解

注销掉

?
1
#bind-address           = 127.0.0.1

在开启mysql服务即可sudo service mysql start

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bot@ubuntu:~$ sudo service mysql start
bot@ubuntu:~$ sudo service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-02-10 21:05:54 CST; 10s ago
    Process: 4013 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SU>
   Main PID: 4021 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 4619)
     Memory: 334.7M
     CGroup: /system.slice/mysql.service
             └─4021 /usr/sbin/mysqld
2月 10 21:05:54 ubuntu systemd[1]: Starting MySQL Community Server...
2月 10 21:05:54 ubuntu systemd[1]: Started MySQL Community Server.

此时,既可以本地(直接物理机的终端上,或者ssh连接至物理机),又可以远程(通过dataGripnavicat这些软件)

以上就是ubuntu20安装配置mysql8.0.23步骤详解的详细内容,更多关于ubuntu安装配置mysql的资料请关注服务器之家其它相关文章!

原文链接:https://segmentfault.com/a/1190000039203507

延伸 · 阅读

精彩推荐
  • MysqlMysql命令大全(详细篇)

    Mysql命令大全(详细篇)

    这篇文章主要介绍了Mysql命令大全,这里整理的算是比较详细的,需要的朋友可以参考下 ...

    MYSQL教程网2052020-05-20
  • MysqlMySql 5.7.14 解压版安装步骤详解

    MySql 5.7.14 解压版安装步骤详解

    本文给大家介绍MySql 5.7.14 解压版安装步骤详解,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧...

    幸福的行路人2112020-06-18
  • MysqlMySQL超详细实现用户管理实例

    MySQL超详细实现用户管理实例

    MySQL 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。在前面的章节中我们使用的是 root 用户,该用户是超级管理员,...

    一念去殇8512022-11-07
  • MysqlMySQl数据库必知必会sql语句(加强版)

    MySQl数据库必知必会sql语句(加强版)

    本文给大家分享了一篇关于mysql数据库必会sql语句加强版内容,非常不错,具有参考借鉴价值,需要的朋友参考下吧...

    mysql教程网4192020-07-25
  • MysqlMySQL中SQL Mode的查看与设置详解

    MySQL中SQL Mode的查看与设置详解

    在本篇文章里小编给各位分享的是关于MySQL中SQL Mode的查看与设置详解内容,需要的朋友们可以参考下。...

    藏色散人10962021-01-10
  • Mysql详细聊聊MySQL中慢SQL优化的方向

    详细聊聊MySQL中慢SQL优化的方向

    由于在MySQL日常查询中,查询类型的语句占慢sql的大部分,所以下面这篇文章主要给大家介绍了关于MySQL中慢SQL优化方向的相关资料,文中通过示例代码介绍的...

    Ijiran6692021-09-26
  • MysqlMySQL中二进制与重做日志文件的基本概念学习教程

    MySQL中二进制与重做日志文件的基本概念学习教程

    这篇文章主要介绍了MySQL中二进制日志文件与重做日志文件的基本概念学习教程,讲到了一些重做日志与二进制日志的区别,需要的朋友可以参考下 ...

    一宁5232020-05-23
  • MysqlNavicat连接mysql报错2003(10060)的解决方法

    Navicat连接mysql报错2003(10060)的解决方法

    本来好好的navicat连接数据库,突然间今天就打不开数据库了,下面这篇文章主要给大家介绍了关于Navicat连接mysql报错2003(10060)的解决方法,文中通过图文介绍的...

    皮皮嘟4152023-04-04