安装 MySQL

第一件事我们当然是安装MySQL

1
2
sudo apt update
sudo apt install mysql-server

当提示安装 MySQL 软件包时,按yENTER
软件包安装程序完成后,我们可以检查MySQL服务是否正在运行

1
sudo service mysql status

如果正在运行,他会如下图所示显示active(running)

然后我们就可以进入到MySQL安全配置中去

MySQL 安全配置

鉴于黑客们喜欢对数据库进行爆破攻击
所以我们安装完第一步就是mysql_secure_installation

1
sudo mysql_secure_installation

密码验证组件(可选)

系统会询问您是否要设置VALIDATE PASSWORD COMPONENT(密码验证插件)

如果您想要强制执行严格的密码策略
我们请尽量选择2 - STRONG Length >= 8, numeric, mixed case, special characters and dictionary
然后输入我们的密码

否则我们可以直接按ENTER跳过。

创建root账户密码

如果你在上一个步骤没有创建root密码
那现在你必须要输入一个强口令作为密码

删除匿名账户

接下来我们可以选择是否删除匿名账户
我选按y加上ENTER删除匿名帐户

禁用root账户远程登录

禁止root账户远程登录
是为了防止黑客对我们root账户进行密码爆破攻击
y加上ENTER即可关闭该功能

删除测试数据库

y加上ENTER即可删除测试数据库

重新加载权限表

y加上ENTER重载权限表

然后我们就完成了对MySQL的安全配置

测试MySQL服务

我们现在可以尝试登录到MySQL

如果提示你输入密码
请输入root密码而不是MySQL密码

1
sudo mysql

如果你要退出MySQL服务
请输入exit并按ENTER

那现在我们就可以去挑战终极Boss

配置 MySQL 数据库权限

  • 2023.06 更新

初次登录

初次登录 MySQL 时密码为

1
sudo mysql -uroot -p

修改密码

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'Root_Password';

创建局域网访问用户

出于安全考虑,通常不建议使用 'root'@'%'
相反,您应该创建一个具有更严格主机限制的用户
例如 'user'@'localhost''user'@'192.168.8.%'

1
2
# 创建能在局域网的 Root 用户
CREATE USER 'root'@'192.168.8.%' IDENTIFIED BY 'Root_Password';

授权所有操作权限给 Root 用户

1
2
3
4
# 授予 Root 权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.8.%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;

疑难杂症

  • 使用 2023.06 更新方法亦可解决

我们使用数据库去连接我们另外一个服务
结果发现ERROR:1698

根据大佬们的判断是远程登录没打开
但是现在的问题是远程登陆我们一定要关掉
所以我们需要另辟蹊径打开本地``远程登录

首先我们先进入到数据库的命令行进行操作

1
sudo mysql -uroot -p

然后我们就在MySQL Shell里输入以下指令

1
2
3
4
5
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your_Password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Your_Password';
use mysql
update user set host='%' where user='root';
flush privileges;

然后我们还要去确认是否只能本地远程连接

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

然后我们可以发现存在

1
2
bind-address            = 127.0.0.1
mysqlx-bind-address = 127.0.0.1

重启以下MySQL服务

1
sudo service mysql restart

然后我们重新连接我们的数据库

参考 & 引用

https://devanswers.co/install-secure-mysql-server-ubuntu-20-04/