首页 > 数据库 >MySQL linux下安装,配置,免密登录与基本认识

MySQL linux下安装,配置,免密登录与基本认识

时间:2024-09-20 19:13:09浏览次数:1  
标签:linux 免密 数据库 mysql mysqld MySQL yum 安装

目录

MySQL卸载

环境

在安装前,为了减少相关因素影响,建议先卸载干净后再安装;

整个安装过程需要root权限;

安装环境 centos 7;

安装版本 MySQL 5.7;

架构 x86-64;

查看是否已安装MySQL

查看正在运行的进程,如果存在可以先kill掉

ps axj|grep mysql

查看是否存在有正在运行的SQL服务

systemctl list-units|grep mysql

暂停mysql服务

systemctl stop mysqld

卸载mysql服务

yum安装的mysql通常是.rpm版本,因此可以通过rpm管理器查看mysql安装包

rpm -qa | grep mysql			#	qa 表示 'query all'

全部卸载,可以选择手动一条条删,也可以选择组合命令自动化删除

rpm -qa | grep mysql | xargs yum -y remove 		# 将rpm输出结果通过xargs转成命令参数喂给yum

查看是否卸载干净

卸载mysql后,/etc/my.cnf文件也会被删除

ls /etc/my.cnf

历史mysql数据默认会保留.需要的话可以做一个备份

sudo ls /var/lib/mysql/

MySQL安装

查看linux版本

安装前先查看自己linux发行版

cat /etc/centos-release

cat /etc/redhat-release

image-20240902132006151

uname -a		# el代表centos

image-20240902132155884

选择MySQL版本

打开网页http://repo.mysql.com/

image-20240902132324522

可以发现很多版本,但是版本过长,显示不全,右键选择查看网页源代码就能展开查看了

image-20240902132812997

我的服务器是centos7,因此选择el版本;即mysql57-community-release-el7.rpm(centos7通用版本,如果有对应的版本也可以选择)

image-20240902133653139

[noarch_百度百科 (baidu.com)](https://baike.baidu.com/item/noarch/5351882?fr=aladdin

获取mysql官方yum源

使用wget直接下载到服务器

wget http://repo.mysql.com/mysql57-community-release-el7.rpm

或者直接下载到本地,然后再使用其他方法如scp,lrzsz,ftp方式等拷贝过去

rpm安装mysql官方yum源

进入到存放mysql的目录后,因为我们下载的mysql是.rpm版本,因此需要使用rpm管理器进行安装.

yum类似一个商店,用于下载需要的包,实际安装也是调用rpm进行安装.如果配好了下载mysql的yum源,就可以直接通过yum进行直接安装.

可以通过ls /etc/yum.repos.d/ 查看所有yum源

image-20240902135747741

我的liunx上没有mysql相关的yum源,因此需要安装;

安装命令:

sudo rpm -ivh mysql57-community-release-el7.rpm

image-20240902135051895

安装后,yum也更新了mysql相关的yum源

image-20240902135902499

之后就可以通过yum进行安装mysql及mysql相关工具.

测试新增的yum源是否正常工作:

yum list |grep mysql

如果出现mysql相关的包,就说明安装成功

安装mysql服务

sudo yum install -y mysql-community-server

安装大概需要1G空间,安装时间根据机器配置而定,需要一定时间

查看是否安装成功

查看mysql配置文件是否存在

ls /etc/my.cnf

查看服务端应用程序是否存在

which mysqld

image-20240902184828864

sbin:super bin # 需要超管权限的服务

查看客户端应用程序

which mysql

查看监听端口号,mysql启动后会在local Address 3306

netstat nltp

配置MySQL

简单登录mysql命令

先看能不能用,简单登录测试,注意刚安装时是不知道密码的,看下文处理

更新版本的mysql可能root没有登陆密码,直接回车登录即可.

其他方式如历史记录查看mysql生成临时密码等(旧版本) :

sudo grep 'temporary password' /var/log/mysqld.log \

搜到就用你的搜到的,搜不到就只能用别的方法

可能临时密码都是相同的,即waQ,qR%be2(5

可以输入试试;

mysql -uroot -p ## -u:User, -p表示password

退出命令

quit

免密登录配置

在不知道密码时,网上有多种登录方式,当前介绍免密登录配置.

在/etc/my.cnf文件中追加以下命令即可.

skip-grant-tables

配置好后重启mysqld

systemctl restart mysqld 	##或者分两步走,先stop再start

然后再次登录mysql,密码处直接回车即可

能够登录之后,再进行修改密码,修改密码方式有很多种,不过当前是处于kip-grant-tables下,常规方式不允许,可以直接通过修改user表进行修改密码;下面语句暂时用着即可

mysql> set global validate_password_policy=0;		## 设置为弱密码强度
#安全强度,默认为中,即1,要求必须包含 数字、符号、⼤⼩写字⺟,⻓度⾄少为8位 

set global validate_password_length=1;	## 设置密码最小长度

update user set authentication_string=password('123456') where user='root';	##直接对数据进行操作
或  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

flush privileges;	## 刷新权限

改完密码后就可以移除skip-grant-tables配置了

my.cnf 其他配置项

## /etc/my.cnf
## ...

datadir=/var/lib/mysql                  #建表等数据存放路径
socket=/var/lib/mysql/mysql.sock        #内部数据,略

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log           #错误日志
pid-file=/var/run/mysqld/mysqld.pid

# User-defind Add
skip-grant-tables                       #免密设置,重启mysqld生效
port=3306                               #mysql服务端口号
character-set-server=utf8               #设置字符集为utf8
default-storage-engine=innodb           #设置默认存储引擎为innodb


lower_case_table_names=1								#设置mysqld大小写不敏感(linux需要配置)
# lower_case_table_names = 0:表名按指定存储,比较是大小写敏感的。
# lower_case_table_names = 1:表名在磁盘上以小写存储,比较不是大小写敏感的。
# lower_case_table_names = 2:表名按指定存储,但比较不是大小写敏感的。

设置开机启动(可选)

systemctl enable mysqld		#开机自启
systemctl daemon-reload		#重新加载配置文件

常用命令与名词认识

登录命令

mysql -h127.0.0.1 -P3306 -uroot		## -h 指定服务器ip -P指定端口号 ##不指定时使用默认

清屏命令

mysql> system clear;

认识mysql 和 mysqld

mysqld是网络服务一种,d表示daemon,守护进程;mysqld表示mysql数据库服务的服务器端

mysql就是数据库服务的客户端了

mysql是一套提供数据存取服务的网络程序;

数据库本质是,在磁盘或内存中存储的 特定结构组织的数据

一般谈数据库服务就表示mysqld ;谈数据库时,就是具体的数据组织文件

数据库在linux中的存在形式

创建了一个数据库叫helloworld

image-20240903102528149

根据/etc/my.cnf知道,datadir是数据存放目录,默认为/var/lib/mysql,进到目录中,可以发现该目录中存在许多与数据库同名的目录,即数据库在linux中是一个目录

image-20240903102517028

进到helloworld目录中,只有一个配置信息的文件

image-20240903103307833

建一个表后,查看变化

image-20240903103604276

表表现为.frm和.ibd两个文件;即表就是数据库目录中的文件

image-20240903103645364

在数据库目录下创建一个目录,对应的mysql也会同步增加一个数据库(测试用,实际不可这么做)

SQL分类

  • DDL(data definition language) 数据定义语言,用来维护存储数据的结构

    代表指令: create, drop, alter

  • DML(data manipulation language) 数据操作语言,用来对数据进行操作

    代表指令: insert, delete, update

  • DCL(data control language) 数据控制语言, 主要负责权限管理和事物

    代表指令: grant, revoke, commit

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎

show engines;

image-20240903112702152

MySQL常用的存储引擎基本上只有两种InnoDB或MyISAM;如果需要其他存储引擎时,大概率也不会选择MySQL,而是考虑其他数据库服务了.

InnoDB以强大索引,事物功能,方便业务处理; MyISAM不支持事务,但是高并发较好;

存储引擎对比

image-20240903112723421

MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

主要还是作为网络服务用在服务器(linux)上.

mysqld可以简单分为4层

image-20240903114159292

help中文翻译

所有 MySQL 命令列表:
请注意,所有的文本命令都必须在一行的开始位置,并且以 ';' 结束。

? (\?) - `help` 的同义词。
clear (\c) - 清除当前输入的语句。
connect (\r) - 重新连接到服务器。可选参数包括数据库(db)和主机(host)。 
delimiter (\d) - 设置语句分隔符。
edit (\e) - 使用 $EDITOR 编辑命令。
ego (\G) - 将命令发送到 MySQL 服务器,并垂直显示结果。
exit (\q) - 退出 MySQL。与 quit 相同。
go (\g) - 将命令发送到 MySQL 服务器。
help (\h) - 显示此帮助信息。
nopager (\n) - 禁用分页器,打印到标准输出。
notee (\t) - 不写入输出文件。
pager (\P) - 设置分页器 [to_pager]。通过分页器打印查询结果。
print (\p) - 打印当前命令。
prompt (\R) - 更改你的 MySQL 提示符。
quit (\q) - 退出 MySQL。
rehash (\#) - 重建补全哈希表。
source (\.) - 执行一个 SQL 脚本文件。需要一个文件名作为参数。
status (\s) - 从服务器获取状态信息。
system (\!) - 执行一个系统 Shell 命令。
tee (\T) - 设置输出文件 [to_outfile]。将所有内容附加到指定的输出文件。
use (\u) - 使用另一个数据库。需要一个数据库名称作为参数。
charset (\C) - 切换到另一个字符集。可能在处理多字节字符集的 binlog 时需要。
warnings (\W) - 每个语句后显示警告。
nowarning (\w) - 每个语句后不显示警告。
resetconnection (\x) - 清理会话上下文。

现学现用

  • ? 命令 显示对应指令的帮助文档

    例如 ? use

  • 命令 \c 当前输入命令作废

  • 命令 \G 结果垂直显示,而不是以表格形式显示。

  • system shell命令\! shell命令 : 执行系统命令

    常用: system clear

  • status\s :显示服务器信息

  • source\.: 执行sql

  • connect [db_name [host]] 重新连接到 my_database 数据库,连接主机为 my_host

    示例:connect my_database my_host;

  • prompt [new_prompt] 修改提示符的名字

    示例:prompt hello> 把提示符mysql> 改成了hello>

标签:linux,免密,数据库,mysql,mysqld,MySQL,yum,安装
From: https://www.cnblogs.com/DSCL-ing/p/18423113

相关文章

  • 【嵌入式Linux】嵌入式Linux平台上DNS-SD(DNS Service Discovery)协议结合mDNS(Multicast
    在嵌入式Linux平台中,实现设备和服务的自动发现是提升系统智能化和用户体验的重要手段。DNS-SD(DNSServiceDiscovery)协议结合mDNS(MulticastDNS)协议,可以在局域网内实现设备和服务的自动注册与发现。本文将详细介绍如何在嵌入式Linux平台上使用DNS-SD协议实现设备服务发现,包......
  • 利用sqoop将某一数据库从MySQL导入hive
    首先,为防止报错,将两个驱动包装在sqoop中:commons-lang-2.6.jar和hive-common-3.1.2.jar一般hive中都会有这两个驱动包,因此可执行如下命令:cp/opt/installs/hive/lib/commons-lang-2.6.jar/opt/installs/sqoop/lib/cp/opt/installs/hive/lib/hive-common-3.1.2.jar/opt/ins......
  • 流浪动物领养系统网站设计与实现[SSM+MySQL+JSP]
    目录系统展示项目背景系统设计总结系统展示项目背景当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术......
  • 案例269购物商城网站的设计与实现[SSM+MySQL+Vue]
    目录系统展示项目背景系统设计总结系统展示项目背景网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能,可以符合各个行......
  • 基于spring boot+vue+mysql的汽车评论分类系统
    结尾名片获取源码开发语言:Java框架:SpringBoot持久化框架:Mybatis-plusJDK版本:JDK1.8服务器:tomcat7\8\9数据库:mysql5.7以上数据库工具:Navicat11以上开发软件:eclipse/myeclipse/ideaMaven:Maven3.5.4浏览器:谷歌浏览器\Edge功能描述随着科学技术的飞速发展,社会的方方......
  • 基于spring boot+vue+mysql的电子招投标系统
    结尾名片获取源码开发语言:Java框架:SpringBoot持久化框架:Mybatis-plusJDK版本:JDK1.8服务器:tomcat7\8\9数据库:mysql5.7以上数据库工具:Navicat11以上开发软件:eclipse/myeclipse/ideaMaven:Maven3.5.4浏览器:谷歌浏览器\Edge功能描述随着信息技术的不断发展,电子招投标......
  • Linux-使用 growpart 工具自动扩容磁盘分区
    Linux-使用growpart工具自动扩容磁盘分区需要预先将云磁盘在web控制台进行扩容growpart为分区表修改工具1.安装扩容工具centos7#安装growpartcurl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repocurl-o/etc/yum.repos.d......
  • Linux系统使用 mkfs.xfs 格式化磁盘分区
    Linux系统使用mkfs.xfs格式化磁盘分区1.安装xfs工具集在CentOS7上安装:yuminstallxfsprogs-y在Ubuntu18上安装:apt-getinstallxfsprogs在ArchLinux上安装:pacman-Sxfsprogs2.修改磁盘分区表使用fdisk创建分区:fdisk/dev/vdb使用pa......
  • Linux-手动扩容磁盘分区
    Linux-手动扩容磁盘分区1.手动扩容磁盘分区实例演示:使用fdisk扩容ext4磁盘分区在本示例中,我们将阿里云的高效云盘从50GB扩容到60GB。1.1扩容前检查磁盘分区信息检查并记录分区表信息:fdisk-l/dev/vdb输出示例:Disk/dev/vdb:60GiB,64424509440bytes,1258291......
  • Linux系统怎样选择磁盘文件系统
    linux系统磁盘常用文件系统该怎样选择1.ext3文件系统在执行fsck(文件系统检查)时耗时较长,文件越多,时间越长。目前只支持最多32000个子目录。2.ext4文件系统是ext3的升级版本,支持更大的文件和文件系统。fsck用时较少,相比ext3有显著提升。子目录数量无限制,文件......