在 Ubuntu 上安装 MySQL8.x 版本

在 MySQL 8.x 带来了许多新特性和改进包括 JSON 数据类型和 Java Script 作为 JavaScript Shell 支持,可以直接使用 JavaScript(JS)作为数据库查询语言或存储过程的语言,更好的性能和安全性,例如连接过程中出现的 Public Key Retrieval is not allowed 错误提示,这些都是新版本特性。本文将记录完整的基于 Ubuntu 最新版本中安装 MySQL8.x 版本的过程。


安装和配置

在安装 MySQL8.x 之前可以尝试先更新一下操作系统和软件包,执行下面命令可以更新:

sudo apt update && apt upgrade -y

更新系统和软件包版本需要一点时间,这个过程取决于你网络和所使用的 apt 软件包数据源地址,数据源配置文件路径 /etc/apt/sources.list

[scode type=“yellow”]如果不确定系统中是否安装其他版本的 MySQL 版本,可以先执行清理命令。清空完成之后,提供 apt search mysql 包管理工具搜索最新的 MySQL8.x 软件安装包,最后通过 apt install 执行进行安装。[/scode]

sudo apt remove  mysql*
sudo apt autoremove
sudo apt autoclean

清空完成之后提供 apt 所提供的 MySQL 软件包进行安装:

sudo apt search mysql
sudo apt install mysql-*

安装完成之后,可以使用 sudo mysql_secure_installation 来初始化 root 用户的密码,这是 MySQL 新版本所提供的初始化数据库程序:

sudo mysql_secure_installation

[scode type=“yellow”]如果需要让 MySQL 服务器能被远程的用户提供客户端访问,需要配置修改服务器所绑定监听的 ipv4 地址,默认是本地环路地址,在这个 /etc/mysql/mysql.conf.d/mysqld.cnf 中找到 bind-address 的值修改它为 0.0.0.0 即可。[/scode]

# changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir
# tmpdir                = /tmp
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0   #这一行 ✅
mysqlx-bind-address     = 127.0.0.1

通过上面的配置目前 root 还是只能通过本机的客户端进行连接,有远程登录需求的可以配置一个远程用户并且允许远程登录,并且设置初始化密码,我这里开放的是 root 用户,执行下面命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码' WITH GRANT OPTION;

解决安全连接问题

在 MySQL8.x 版本中如果要使用正常的密码连接到 Server 中连接过程中出现的 Public Key Retrieval is not allowed 错误提示,这个是新特别特意到安全功能增强,如果要使用这种方式连接必须要配置 SSL/TLS 密钥对进行连接。

[scode type=“yellow”]指定用户使用的密码验证方法 mysql_native_password ,这让 MySQL 使用的默认身份验证插件,它支持基于用户名和密码的常规身份验证机制,执行下面命令使用默认密码验证方式进行连接:
[/scode]

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new password';

执行上面的 SQL 之后,刷新一下 MySQL 授权表:

flush privileges;

最后记得在服务器上允许开放 3306 端口数据包的连接。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值