第 1 课:环境配置
通过表来存储数据的叫关系型数据库

(一)Ubuntu 安装MySQL
(1)安装
安装数据库
sudo apt update
sudo apt install mysql-server
查看安装的mysql版本
mysql --version
手动 启动数据库
sudo /etc/init.d/mysql start
启动MySQL服务,和上一条命令功能一样锁定
sudo systemctl start mysql
sudo systemctl status mysql
开机自启MySQL服务
sudo systemctl enable mysql
停止MySQL服务
sudo systemctl stop mysql重启MySQL服务
sudo systemctl restart mysql
(2)安全性升级
启动 mysql-secure-installation
sudo mysql_secure_installation
接下来会有几个提示:
-
询问是否验证密码插件:选yes
-
选择合适的密码强度:2
-
选择是否删除所有匿名用户:yes
-
是否允许root远程连接:N
-
是否删除最初的test测试数据库:N
-
使设置马上生效:y
(3)调整身份验证
MySQL Server 带有一个客户端实用程序,可以从 Linux 终端访问数据库并与之交互。
通常,未做任何配置时,在 Ubuntu 上全新安装 MySQL 后,访问服务器的用户将使用 auth_socket 插件进行身份验证。
auth_socket 的使用会阻止服务器使用密码对用户进行身份验证。它不仅会引发安全问题,而且还会使用户无法借助外部程序(如 phpMyAdmin)访问数据库。因此我们需要将身份验证方法从 auth_socket 更改为使用 mysql_native_password。
打开 MySQL 控制台
sudo mysql
检查数据库对不同用户使用的身份验证方法。
SELECT user,authentication_string,plugin,host FROM mysql.user;
在MySQL以及许多其他SQL数据库系统中,分号(;)作为语句的终结符使用,

| user | 用户的名称 |
|---|---|
| authentication_string | 用户密码的加密字符串。root用户在这里没有加密密码,因为它使用了另一种认证方法auth_socket,阻止服务器使用密码对用户进行身份验证。所以可以确认 root 用户确实使用 auth_socket 进行了身份验证。 |
| plugin | 用于认证的插件名称。在这个例子中,除了root用户使用auth_socket插件外,其他用户都使用了caching_sha2_password插件。auth_socket插件允许通过操作系统的用户认证登录MySQL,而不需要密码,这通常在root用户上看到。caching_sha2_password是MySQL 8及更高版本的默认认证插件,提供了基于SHA-256的密码加密机制。 |
| host | 指定了用户允许从哪个主机连接到数据库服务器。在给出的例子中,所有用户都只能从localhost连接,这意味着他们只能从MySQL服务器所在的机器进行本地连接 |
切换到密码验证。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
另外需要注意的是,确保使用较强密码,因为它将替换你在执行上述命令 sudo mysql_secure_installation 时设置的密码。
刷新权限。重新加载授权表并将更改更新到 MySQL 数据库
FLUSH PRIVILEGES;
此刻我们再查看用户的验证状态,就可以看到root的验证方式已经改变
退出mysql控制台
\q
由于我们更改了 root 的身份验证方法,因此我们无法使用之前 sudo mysql 命令打开 MySQL 控制台。
mysql -u root -p
-
-u:用户,这里是“root”, -
-p:“password”
(4)创建新用户
创建一个权限较低的新用户Heihe
进入控制台
mysql -u root -p
创建新用户
CREATE USER 'Heihe'@'localhost' IDENTIFIED BY '密码';
解释:
-
CREATE USER:创建一个新的数据库用户。 -
'Heihe'@'localhost': 新用户的只能从本地连接到数据库服务器。 -
IDENTIFIED BY '密码': 为新用户设置了登录密码。
分配所需的权限
GRANT ALL PRIVILEGES ON *.* TO 'Heihe'@'localhost' WITH GRANT OPTION;
退出控制台
exit;
尝试登录,登录成功
mysql -u Heihe -p
(5)允许远程访问
安装成功后,需要启用远程访问。
从逻辑上讲,我们需要在 Ubuntu 服务器防火墙上打开一个端口,以便 MySQL 数据库进行通信。默认情况下,MySQL 服务在 3306 端口上运行。
配置Uncomplicated Firewall(UFW),以允许外部访问MySQL服务
sudo ufw allow mysql
sudo ufw reload
现在需要配置服务器的接口,从而服务器能够侦听远程可访问的接口。我们需要编辑“mysqld.cnf”文件。
编辑“mysqld.cnf”文件。重置服务器的接口,从而服务器能够侦听远程可访问的接口。
配置绑定地址
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
默认情况下,绑定地址为“127.0.0.1”。为公网接口添加绑定地址,为服务网络接口添加另一个绑定地址。你可以将所有 IP 地址的绑定地址配置为“0.0.0.0”。
注意在datagrip中要设置 Allow Public Key Retrieval

(二)Windows 安装 MySQL
https://blog.csdn.net/weixin_44512005/article/details/135777754