【mysql部署】在ubuntu22.04上安装和配置mysql教程

一.安装mysql

1. 更新软件包列表:
复制代码
sudo apt-get update
2.安装 MySQL 服务器:
复制代码
sudo apt-get install mysql-server
3.设置 MySQL 安全性:
复制代码
sudo mysql_secure_installation

按照提示输入相关问题的回答,例如删除匿名用户、禁止 root 远程登录等。

这里建议直接输入y

这里根据自己要设置的密码强度自行选择,这里我选择输入0

后面还有几个选项,默认输入y就行。

4.启动 MySQL 服务:
复制代码
sudo service mysql start
5.检查mysql是否处于运行状态:
复制代码
sudo service mysql status

如果 MySQL 正在运行,将看到 "active (running)" 的输出信息。

6.检查 MySQL 版本:
复制代码
mysql --version

二.修改mysql配置

1.以root身份登录mysql

MySQL 数据库带有一个客户端实用程序,允许你从 Linux 终端访问数据库并与之交互。

通常,在未执行任何配置的情况下在 Ubuntu 上全新安装 MySQL 后,访问服务器的用户将使用身份验证套接字 (auth_socket) 插件进行身份验证。

2.打开 MySQL 控制台:

复制代码
sudo mysql

3.输入命令检查数据库对不同用户使用的身份验证方法:

复制代码
SELECT user,authentication_string,plugin,host FROM mysql.user;

我们可以看到root用户是使用身份验证套接字 (auth_socket) 插件进行身份验证登录的,并且只能在本地登录。

在生产环境中,为了保证数据库的安全性,我们一般不建议直接使用 root 用户进行其他操作,而是创建一个专门用于应用程序或管理员操作的非特权用户,并且仅授予该用户必要的权限。

接下来,我们开始创建非特权用户,并且授予该用户必要的权限!

4.列出 MySQL 数据库服务器上的所有数据库:

复制代码
SHOW DATABASES;

5.切换到其中一个数据库mysql:

复制代码
use mysql;

6.创建用户new_user,并设置只能本地登录,登录密码为password。用户名和密码自己设置,并且密码包括大写,小写,数字等字符。

复制代码
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';

这里我是创建的用户名为wwk

7.我们再次输入命令检查数据库对不同用户使用的身份验证方法:

复制代码
SELECT user,authentication_string,plugin,host FROM mysql.user;

可以看到多了一条记录,并且该用户wwk是使用密码登录,只能在本地登录。

8.尝试创建一个新的数据库进行存储应用程序的数据,例如mydatabase:

复制代码
CREATE DATABASE mydatabase;

9.设置刚才自己创建的用户wwk登录方式为远程登录。

复制代码
update user set host='%' where user='wwk' and host='localhost';

10.我们再次输入命令检查数据库对不同用户使用的身份验证方法:

复制代码
SELECT user,authentication_string,plugin,host FROM mysql.user;

从图中的%,我们可以看到用户wwk的登录方式已经是允许在任意主机上进行登录了。

11.授予用户new_user适当的权限,给予用户new_user在任意主机登录,并且只能对于数据库database_name进行所有操作的权限。

复制代码
GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'%';

这里的用户new_user可以替换为之前创建的用户wwk,数据库database_name替换为刚才创建的数据库mydatabase

12.退出mysql

复制代码
exit

13.接着,进入目录/etc/mysql/mysql.conf.d,修改其下的文件mysqld.cnf

复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address = 127.0.0.1注释掉(即在行首加#)

代码如下:

复制代码
# 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

如果只是开发用的数据库,为了方便起见建议直接注释掉。

14.完成上述所有步骤后,需要重启一下数据库,才能让修改的配置生效:

复制代码
sudo service mysql restart

到此,mysql的配置修改就结束了。

三.使用datagrip或者idea远程登录mysql

这里为了方便我使用idea进行mysql远程登录。首先登录idea,然后按照如下图步骤进行操作。

然后来到了data sources界面:

在Host填入mysql所在的ip地址,接着填入用户名wwk和密码,点击下方的Test Connection进行测试连接,从图中,我们可以看到是连接成功的!

接着点击下图红色方块选择需要展示的数据库个数

这里选择需要展示的数据库数量为ALL,然后点击刷新。

然后就可以从图中找到数据库mydatabase了,由于之前我们授予用户wwk只能对数据库mydatabase进行所有操作的权限,因此用户wwk并没有其他多余的权限,这样就能够保证数据库的安全性!!

我们就可以在这个可视化界面进行数据库mydatabase的所有操作,包括插入,删除,添加,更新,查询,修改等操作啦!!

相关推荐
Mr YiRan4 小时前
网络请求API监控与网络切换埋点
android·网络
美狐美颜sdk7 小时前
直播APP开发技术栈详解:视频美颜SDK、人脸识别与实时渲染
android·人工智能·音视频·美颜sdk·直播美颜sdk
独泪了无痕10 小时前
SQL函数实战:GREATEST与LEAST的技巧
数据库·sql·mysql
麻辣布丁10 小时前
MySQL篇面试题模拟
mysql
这个DBA有点耶11 小时前
MySQL 8.0.20移除了Block Nested Loop,之前学的JOIN优化知识还适用吗?
数据库·mysql·架构
奈斯先生Vector13 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
TimeFine13 小时前
让强模型做“总工”,让高性价比模型写代码
android
又见情义14 小时前
RK3568 Android 13 屏蔽 healthd 电池日志经验分享
android
开心麻瓜14 小时前
一条 SQL 跑了 8 秒,优化到 200ms 的全过程
mysql
FYKJ_201016 小时前
【毕设分享】基于Web的校园兼职信息发布与申请系统07059
前端·vue.js·spring boot·mysql·typescript·spark·课程设计