百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

MySql安装与使用

wptr33 2025-05-30 17:52 20 浏览

介绍

mysql是目前最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

MySQL是非常灵活的一款数据库,虽然它不是绝对完美,但它的灵活足够适应很多高要求的环境。为了发挥MySQL的性能并很好的使用它,我们就得先了解其设计。MySQL的灵活主要体现在我们可以通过不同的配置使他在不同的硬件上都能运行的很好。但是MySQL最重要,与种不同的特性是它的存储引擎架构,这种架构将查询处理及其他系统任务和数据的存储/提取相分离。

1、mysql概述

1.1、关系型数据库

关系型数据库天然就是二维表格,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。

1.2、MySQL数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。

MySQL可将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,从而加快了访问速度并提高了灵活性。

MySQL 使用了标准的 SQL 语言形式。支持大型的数据库,可以处理拥有上千万条记录的大型数据库。MySQL 还可用于多种系统中,且支持多种语言。

1.3、RDBMS术语

数据库:数据库是一些关联表的集合。

数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

列:一列(数据元素)包含了相同的数据,例如邮政编码的数据。

行:一行(=元组,或者记录)是一组相关的数据,例如一条用户订阅的数据。

亢余:存储两倍数据,亢余降低了性能,但是提高了数据的安全性。

主键:主键是唯一的,一个数据表中只能够包含一个主键,你可以使用主键来查询数据。

外键:外键用于关联两个表。

复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或者多列的值进行排序的一种结构。类似于书籍的目录。

1.4、mysql下载

https://dev.mysql.com/downloads/mysql/

点击“Download”后,我们要先登录Oracle,才能进行下载。

2、mysql安装

2.1、指定安装文件位置

将mysql安装包放到/usr/local/下面

2.2、解压

[root@localhost local]# xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 
[root@localhost local]# tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar

2.3、改名

[root@localhost local]# mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql

2.4、创建用户组

mysql用户组、mysql用户

[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql mysql
[root@localhost local]# passwd mysql
#更改密码:Ww1985929wW

2.5、修改MySQL配置文件

/etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

2.6、创建data文件夹

data文件夹是用于存储数据库文件,他的位置是在mysql目录下

[root@localhost mysql]# mkdir data

2.7、更改mysql目录权限

[root@localhost mysql]# chown -R mysql .
[root@localhost mysql]# chgrp -R mysql .

2.8、初始化数据库

[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

执行完后查看初始密码:

[root@localhost mysql]# vim /usr/local/mysql/data/error.log

2.9、启动mysql服务

[root@localhost mysql]# ./support-files/mysql.server start
Starting MySQL... SUCCESS!

2.10、修改root密码

[root@localhost mysql]# ./bin/mysql -uroot -prj%-:yqHb98g

修改密码:

mysql> alter user 'root'@'localhost' identified by 'Root123456';
Query OK, 0 rows affected (0.05 sec)

3、mysql操作

3.1、服务器操作

启动、停止、重启

[root@localhost mysql]# ./support-files/mysql.server restart
Shutting down MySQL. SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@localhost mysql]# ./support-files/mysql.server stop
Shutting down MySQL.. SUCCESS! 
[root@localhost mysql]# ./support-files/mysql.server start
Starting MySQL.. SUCCESS!

3.2、设置远程连接

mysql> create user 'root'@'%' identified with mysql_native_password by 'Root123456';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

遇到问题:

Can't connect to MySQL server on '192.168.1.121' (61)

[root@localhost mysql]# systemctl stop firewalld.service 
[root@localhost mysql]# firewall-cmd --state

4、mysql卸载

4.1、停止mysql服务

[root@localhost mysql]# ./support-files/mysql.server stop
Shutting down MySQL.... SUCCESS!

4.2、查找所有mysql相关文件夹

查找

[root@localhost mysql]# find / -name mysql

删除所有查出来的文件夹

[root@localhost mysql]# rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
......

4.3、删除配置文件

配置文件一般有/etc/my.cnf 或/etc/init.d/mysql.server,

[root@localhost mysql]# rm -f /etc/my.cnf
[root@localhost mysql]# rm -rf /etc/init.d/mysql.server

4.4、删除用户组

[root@localhost mysql]# userdel mysql
[root@localhost mysql]# id mysql
id: “mysql”:无此用户

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...