MySQL是非常常用的关系型数据库,无论是大厂还是小厂,都有它的身影。最大的优点是免费,安装起来也比较简单。
画了个简图,描述了下MySQL的架构。
其中的比较有趣的点在于连接池和存储引擎。连接池缓存了数据库和客户端的TCP连接,以减少建立连接的开销。存储引擎的使用则采用了插件化的方式,数据库引擎定义了接口,实现了接口就能被整合到数据库。
首先是更新软件包列表
sudo apt update
然后是安装mysql-server
sudo apt install mysql-server
安装时会询问一下,填个 y 即可。
装完之后,会自动启动服务,可以用systemctl status看下状态
sudo systemctl status mysql
为active代表启动没问题
然后我们设置下安全配置
sudo mysql_secure_installation
会出现如下图,一般来说这里我们会选y,它会要求我们的密码达到一定的强度才能改成功
然后是是否删除匿名用户,也是 y
然后是一个安全选项,问是否要禁止远程登录MySQL。一般来说,业务服务和数据库的连接都是单独建账户,而不是使用root账户,所以这个也是y
然后是是否要移除测试数据库,选y
然后是要不要立即重新加载权限表,选y
用sudo登录mysql
sudo mysql
执行修改密码的sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root123.';
注意要记一下密码,要不修改起来会比较麻烦。
最后刷新下权限
FLUSH PRIVILEGES;
我们需要允许远程登录,所以这里要修改下配置
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address要改成0.0.0.0
然后重启服务
sudo systemctl restart mysql
首先是添加防火墙策略,开放3306端口。如果没有启用防火墙,这一步可以省略
sudo ufw allow 3306
我们来建一个数据库,并创建一个允许远程连接的账户
创建数据库
create database mydata;
创建用户
CREATE USER 'friend'@'192.168.68.1' IDENTIFIED WITH 'mysql_native_password' BY 'Friend123.';
?简单说明下
?然后是授权
GRANT ALL PRIVILEGES ON mydata.* TO 'friend'@'192.168.68.1';
刷新权限
FLUSH PRIVILEGES;
然后使用工具连接即可连接成功。