当今,MySQL8的文档还停留在支持Ubuntu 20.04上,甚至使用官方的mysql-apt-config安装也会提示不支持。但是使用apt却可以很顺利地在Ubuntu 22.04的实体机/虚拟机/容器上安装MySQL8。

使用apt的安装过程轻松又愉快,只需sudo apt install mysql-server

这时候MySQL已经运行了,并且开机自启。与其他平台或者安装方法不同,apt安装的MySQL服务叫做mysql而不是mysqld。控制mysql服务的命令有:

  • sudo service mysql status
  • sudo service mysql start
  • sudo service mysql stop
  • sudo service mysql restart

在安装MySQL的过程中没有输入root密码。实际上,我们需要到MySQL命令行中修改root密码。直接运行sudo mysql进入MySQL命令行,然后使用SQL命令修改root密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pswonlyforlocal';

其次,为了远程登录root用户,还需要创建一个新root用户:

CREATE USER 'root'@'%' IDENTIFIED BY 'pswonlyforlocal';

给远程的root用户授予所有权限:

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

刷新权限,这是可选的:

FLUSH PRIVILEGES;

在apt安装的MySQL的配置文件里,设置了绑定127.0.0.1地址,需要在配置文件/etc/mysql/mysql.conf.d/mysqld.cnf中注释掉该行,在操作之前,需要停止mysql服务:service mysql stop

# If MySQL is running as a replication slave, this should be
# 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           = 127.0.0.1
mysqlx-bind-address     = 127.0.0.1

使用service mysql start启动MySQL服务。

至此,应当可以在Ubuntu22.04的实体机/虚拟机/容器中本地或者远程使用MySQL了。