【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的所有操作,包括插入,删除,添加,更新,查询,修改等操作啦!!

相关推荐
androidwork1 分钟前
使用 Kotlin 和 Jetpack Compose 开发 Wear OS 应用的完整指南
android·kotlin
繁依Fanyi1 小时前
Animaster:一次由 CodeBuddy 主导的 CSS 动画编辑器诞生记
android·前端·css·编辑器·codebuddy首席试玩官
奔跑吧 android3 小时前
【android bluetooth 框架分析 02】【Module详解 6】【StorageModule 模块介绍】
android·bluetooth·bt·aosp13·storagemodule
田一一一7 小时前
Android framework 中间件开发(三)
android·中间件·framework·jni
学地理的小胖砸10 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
数据库幼崽10 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
betazhou11 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
androidwork12 小时前
掌握 Kotlin Android 单元测试:MockK 框架深度实践指南
android·kotlin
田一一一12 小时前
Android framework 中间件开发(二)
android·中间件·framework
追随远方12 小时前
FFmpeg在Android开发中的核心价值是什么?
android·ffmpeg