MySQL-ubuntu环境下安装配置mysql

文章目录


什么是数据库?

数据库本质上来讲其实就是一种存储数据的方式。可是为什么需要数据库来存储管理数据? 我们学过Linux操作系统,存储数据我们可以使用磁盘文件,而对于打开的文件我们的OS也有对应的数据结构来进行管理,那为什么我们还需要数据库呢?

这是因为OS对于文件内容的管理对于用户来讲,并不是那么的方便。我们如果要对文件中的内容来进行大量的增删查改操作,就需要我们上层的二次编码来进行操作。而数据库就很好的为用户解决了这一问题,它能更有效的管理数据。数据

库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。


提示:以下是本篇文章正文内容,下面案例可供参考

一、ubuntu环境下安装mysql

  1. 先将用户切换为root用户,以下安装配置都需要用到超级管理员权限来进行。
    su -

  2. 先检查当前主机是否已经下载了mysql或者mariadb
    dpkg -l | grep mysql-server
    dpkg -l | grep mariadb

如果有返回结果,那么就是已经下载安装了。

  1. 卸载曾经的mysql或mariadb环境
    apt remove mysql-server
    apt remove mariadb

  2. 下载安装mysql
    apt install -y mysql-server

  3. 查看安装并启动mysql服务

    对于安装的不同版本,有些mysql版本在下载安装时就已经默认开启了服务。有些则需要手动打开服务。

    查看是否打开mysql服务
    systemctl status mysql

打开mysql服务
systemctl start mysql or systemctl start mysqld

有些老版本需要启动的是mysqld。


输入命令
ps axj | grep mysql

如果看到有/usr/bin/mysqld进程也可以说明mysqld服务启动成功。

二、配置mysql配置文件

1.先登上root账号

由于刚安装好mysql,默认只会有一个账户,并且这个账户是root的。

所以我们先输入mysql -u root -p 登录root的账户。

这个时候要求你输入密码。 由于mysql版本不同大家这里可能会出现两种的情况。

  1. 较高版本的mysql,这里root密码直接就没有,直接输入回车就可以登录上root账户。
  2. 需要输入root的密码,但是因为这个密码我们怎么知道?

solution 1

#获取临时root密码
sudo grep 'temporary password' /var/log/mysqld.lo

2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for root@localhost:yLMalT:v+5l*

通过复制这个临时密码来进行登录root账户。

solution 2

#更改配置文件
vim /etc/my.cnf

在最后添加 skip-grant-tables()

然后重启mysql服务systemctl restart mysqld


至于如何更改账号密码,我们以后再讲。

2.配置文件的修改

不同版本的配置文件路径可能有不同。
vim /etc/my.cnf or vim /etc/mysql/my.cnf

在[mysqld]中添加

character-set-server=utf8 #使用utf-8编码格式

default-storage-engine=innodb #使用innodb存储引擎

然后重启mysql服务systemctl restart mysqld

show engines \G;

查看mysql支持的引擎。

mysql和mysqld

之前我们就学过客户端与服务端。在这里,mysql其实是客户端,mysqld是服务端(d代表daemon守护进程)。我们通常是使用mysql客户端来对mysqld中的数据库来进行访问数据。

当我们使用ps axj | grep mysql时,我们是可以看到mysqld是一直在启动着的。

当我们使用mysql -u root -p登录上mysql客户端后,再使用ps axj | grep mysql就可以看到

数据库的基础操作

登录mysql

mysql -u root -p

创建数据库

create database helloworld 创建名为helloworld的数据库。

显示当前数据库

show databases;

这就是当前所拥有的数据库。

cd /var/lib/mysql进入该路径之后,我们可以观察到一些细节。

我们创建数据库其实就是创建了一个文件夹?

使用数据库

use helloworld; 使用数据库。

其实这个可以理解为是进入了helloworld数据库对应的文件夹。

创建表

首先要先使用use [databasename];

然后才可以创建表。
create table students(
id int,
name varchar(32),
age int,
gender varchar(2)
);

当我们进入cd /var/lib/mysql/helloworld

可以看到有一个students.idb的文件。

插入students表数据

insert into students (id, name, age, gender) values (1, '张三', 18, '男');
insert into students (id, name, age, gender) values (2, '李四', 19, '男');

打印students表数据

select * from students;

相关推荐
云和数据.ChenGuang4 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys5 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi5 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据6 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi7 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀7 小时前
Redis梳理
数据库·redis·缓存
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天7 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺8 小时前
分布式系统架构:服务容错
数据库·架构
独行soc9 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘