ubuntu - 安装 Mysql(apt 方式)

环境说明

  • OS:Ubuntu 20.04.6 LTS
  • Mysql:8.0.42-0ubuntu0.20.04.1(软件源当前最新版)

安装流程

  1. 安装Mysql服务端
1
sudo apt install mysql-server
  1. 安装 Mysql 客户端(可省略,mysql-server 依赖 mysql-client-8.0,因此已经安装了 mysql-client-8.0,安装 mysql-client 其实也就依赖这个。安装上只是感觉上更好 😄)
1
2
3
4
sudo apt install mysql-client

# 【可选】安装开发库(如果需要用 `C/C++` 开发,则需要安装这些头文件和库文件)
# sudo apt install libmysqlclient-dev

示意图

  1. 安装完毕后,默认会启动并设置为开机自启。如下检查

示意图

  1. 登陆 Mysql,通过 sudo mysql 即可

示意图

PS. 为什么这样就能登录了?因为默认 root 用户的加密方式是 auth_socket,详情参见 mysql - 免密登录(使用 auth_socket 插件)

  1. 【可选】为 root 用户设置密码(!不推荐修改,我个人认为 root@localhost 用户最佳实践就是 auth_socket,登录方便且安全!)
1
2
mysql> alter user root@localhost identified with caching_sha2_password by '123456';
Query OK, 0 rows affected (0.02 sec)

PS. 注意,原始的 plugin 是 auth_socket,这个允许用户使用系统(Unix/Linux)账号登录 MySQL,而不使用密码,即不管 authentication_string(密码字段)

我们这里将其加密方式设置为 caching_sha2_password,此时密码就有效了,这里设置为 123456

通过修改后的账号密码登陆

示意图

允许远程【可选】

  1. 监听本机所有端口(默认仅监听 127.0.0.1,无法外部访问)

示意图

通过 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 编辑配置

1
2
3
4
5
6
7
# 原本
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1

# 改为
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
  1. 重启 Mysql 并检查监听
1
sudo systemctl restart mysql

示意图

  1. 创建一个远程用户(之前的 root 的 host 是 localhost,因此仅本机可使用)
1
2
3
4
5
6
7
# 创建用户
mysql> create user kay@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.02 sec)

# 授权权限(简单起见,我授予所有权限,包括`grant`自己)
mysql> grant all on *.* to kay@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)

PS. 是否需要 flush privileges?如果通过修改表方式,修改 mysql.user 则需要,否则不需要