Linux(2)系统基本操作-Mysql数据库原生安装_Mysql常用命令_安装和使用过程常用问题

本文详细介绍了如何在LinuxCentOS系统中查询版本信息,切换图形界面和命令行,以及Mysql的原生安装、卸载、数据库设置、字符集和排序规则,包括MySQL8.0的新特性处理。
摘要由CSDN通过智能技术生成

二、Linux系统基本操作

1、查询centos版本

[root@host-10-150-223-171 ~]# uname -a
Linux host-10-150-223-171 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@host-10-150-223-171 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

解释:这个命令会输出 CentOS 系统的版本号和其他相关信息。

  • 使用cat /etc/redhat-release命令。
    指令代码:cat /etc/redhat-release
    操作结果:例如显示“CentOS Linux release 7.9.2009 (Core)”,这表示CentOS的版本是7.9.2009。
  • 使用lsb_release -a命令。
    指令代码:lsb_release -a
    操作结果:显示CentOS的详细描述,包括发行版号和名称等。
  • 使用rpm -q centos-release命令。
    指令代码:rpm -q centos-release
    操作结果:显示centos-release包的具体版本号,从而推断出CentOS的版本。

2、图形界面和命令行切换

2.1 命令行->图形界面

命令行输入:init 5 回车即可进入图形界面模式

2.2 图形界面->命令行

终端输入:init 3 回车即可进入命令行模式

三、Mysql数据库

1、mysql 原生安装

1.1 mysql 安装

(1) 下载mysql rpm包

cd /usr/local/src

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述

(2) 安装下载的rpm包

yum localinstall mysql80-community-release-el7-3.noarch.rpm

sudo rpm -Uvh mysql80-community-release-el6-n.noarch.rpm

在这里插入图片描述

在这里插入图片描述

(3)查看yum存储库中的mysql版本

默认最新的enabled,需要改成需要的版本

yum repolist all | grepmysql

在这里插入图片描述

(4) 修改为需要的版本,机禁用yum存储库中mysql不需要的版本和开启需要的版本

yum-config-manager --disable mysql80-community

yum-config-manager --enable mysql57-community

手动编辑/etc/yum.repos.d/mysql-community.repo 文件来选择,把默认版本的enabled=1改为0,需要版本的enabled=1

(5) 安装mysql

[root@localhostsrc]# yum install mysql-community-server.x86_64

(6)mysql第一次启动自动生成临时密码

5.7版本mysql第一次启动自动生成临时密码,可通过查看日志找到

grep ‘temporary password’ /var/log/mysqld.log

操作如下:

如果这个文件为空:
1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
2.重启mysqld服务
systemctl restart mysqld
3.再去找临时密码
grep ‘temporary password’ /var/log/mysqld.log

实际操作:Systemctl restart mysqld

[root@localhost ~]# systemctl restart mysqld

[root@localhost ~]# grep ‘temporary password’ /var/log/mysqld.log

2020-10-02T04:00:45.048107Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wnygpa?nK5/kn

在这里插入图片描述

(7)登陆

这个时候执行

[root@localhostsrc]# mysql -u root –p

输入上面的临时密码,可以登录,但是查询时候提示reset密码

在这里插入图片描述

设置的密码不符合安全策略

mysql> alter user ‘root’@‘localhost’ identified by ‘eifire@119’;

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

在这里插入图片描述

修改复杂点Ei@@@1995@,ok成功

mysql> alter user ‘root’@‘localhost’ identified by ‘Ei@@@1995@’;

在这里插入图片描述

然后mysql> flush privileges;

在这里插入图片描述

(8)修改密码策略,完成密码修改登陆

如果想要查看MySQL完整的初始密码规则,登陆后执行以下命令

mysql> show variables like ‘validate_password%’;

在这里插入图片描述

密码的长度是由validate_password_length决定的,但是可以通过以下命令修改

set global validate_password_length=4;

validate_password_policy决定密码的验证策略,默认等级为MEDIUM(中等),可通过以下命令修改为LOW(低)

set global validate_password_policy=0;

原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,validate_password_policy的值有关,如图所示:

在这里插入图片描述

修改完成后密码就可以设置的很简单,比如1234之类的。

开始操作:

mysql> set global validata_password.policy=0;

在这里插入图片描述

mysql> alter user ‘root’@‘localhost’ identified by ‘eifire@119’;

mysql> flush privileges;

在这里插入图片描述

1.2 完美卸载

// rpm包安装方式卸载

查包名:rpm -qa|grep -i mysql

删除命令:rpm -e –nodeps 包名

(1)查看已安装的mysql

命令:rpm -qa | grep -i mysql

(2)卸载mysql

命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64

查看mysql的其它依赖:rpm -qa | grep -i mysql

(3)卸载依赖

yum remove mysql-libs

yum remove mysql-server

yum remove perl-DBD-MySQL

1.3 mysql常用命令
1.3.1 重启mysql

service mysqld restart

[root@host-10-150-223-73 mysql]# service mysql restart
Shutting down MySQL… SUCCESS!
Starting MySQL. SUCCESS!

==========================================================================

1.3.2 查询mysql运行状态

指令一:ps -aux|grep mysql

指令二:ps -ef|grep mysql

执行结果中看到了mysql进程,确定mysql正在运行与否。

(a)mysql未启动起来

在这里插入图片描述

备注: 3306未启动起来时候,通过telnet测试端口服务。

在这里插入图片描述

**解决:**重启mysql服务

(b)mysql服务运行起来了

在这里插入图片描述

==========================================================================

1.3.3 whereis mysql

[root@localhost src]# whereis mysql

在这里插入图片描述

==========================================================================

1.3.4 查询端口服务3306

https://www.cnblogs.com/hindy/p/7249234.html

[root@localhost ~]# netstat -anp |grep 3306

在这里插入图片描述

==========================================================================

1.4 mysql安装遇到问题
1.4.1 2003错误,mysql连接

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

【解决】:

那么我们就有两种方法去解决了

  1. 关闭防火墙

  2. 设置防火墙开放端口

第一种方法:

//停止

systemctl stop firewalld.service

//禁止开机启动

systemctl disable firewalld.service

第二种方法:

//这里发现防火墙是开启的,再来查看防火墙控制的端口

systemctl status firewalld

//查看防火墙控制的端口,发现我想要监听的8081端口没有开启

firewall-cmd --list-all

//永久开启3306端口

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

//重载防火墙

sudo firewall-cmd --reload

在这里插入图片描述

==========================================================================

1.4.2 1130错误,关闭防火墙后出现t

执行:

[root@localhost ~]# systemctl stop firewalld.service

在这里插入图片描述

在这里插入图片描述

【问题分析】:

​ 在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。为了安全性, 默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。

【解决】:

不支持远程登录,需要修改用户表的数据

实际操作:

mysql -u root -p

mysql>use mysql;

mysql>select ‘host’ from user where user=‘root’;

mysql>update user set host = ‘%’ where user =‘root’;

mysql>flush privileges;

mysql>select ‘host’ from user where user=‘root’;

第一句是以权限用户root登录

第二句:选择mysql库

第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址

第五句:刷新MySQL的系统权限相关表

第六句:再重新查看user表时,有修改。。

记得Mysql服务需要重新启动(确保修改有效),否则可能修改的结果无法体现。

==========================================================================

1.4.3 2058错误,关Navicat解决了,但是SQLyog出现错误

在这里插入图片描述

【原因分析】:

新的MySQL 8.0安装,在初始化数据目录时,将‘root’@'localhost’创建帐户,并且该帐户caching_sha2_password默认使用,密码的加密方法发生了改变,因此SQLyog不能正常解析,才报出如上错误。

【解决方案】:https://www.jb51.net/article/171721.htm

第一步:使用命令行(win+R --> cmd)登录mysql,需要输入密码;若出现如下界面,登录成功

在这里插入图片描述

第二步:输入 use mysql;(分号不要忘记)

第三步:输入 select user,host from user; 出现如下界面。

在这里插入图片描述

第四步:从图可以看到root 对应的是localhost,接下来输入ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’; (这个root是你要改的密码,可以写其他的).

出现Query OK就可以了,之后在去sqlyog连接就能连接成功了。(如果你root对应的是%,那 ‘root’@‘localhost’ 改成 ‘root’@‘%’)
在这里插入图片描述

==========================================================================

1.4.4 1045错误,Access denied for user ‘root’@‘localhost’ (using password: YES) 拒绝访问

在这里插入图片描述

【解决】:

之前是:只读权限,且输入可能有问题,在下面图例(错误)。

之后:改成下面这个可以

mysql> grant all privileges on *.* to 'test002'@'%' identified by 'test002@2022jtj' with gran
t option;
1.5 mysql数据库使用
1.5.1 新建数据库-字符集-排序规则

mysql在新建数据库时(Navicat)界面时会遇到两个典型选项:

在这里插入图片描述

在这里插入图片描述

(1)字符集

一般选择utf8.

utf8与utfmb4的区别:

utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,一般和项目需求有关,可以查看unicode编码区,从1 ~ 126就属于传统utf8区。

当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。

(2)排序说明

排序一般分为两种:utf_bin和utf_general_ci

bin 是二进制, a 和 A 会别区别对待.

例如你运行:

SELECT * FROM table WHERE txt = ‘a’

那么在utf8_bin中你就找不到 txt = ‘A’ 的那一行, 而 utf8_general_ci 则可以找到.

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

utf8_uicode_ci和utf8_general_ci对中、英文来说没有实质的差别。

utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)

utf8_unicode_ci准确度高,但校对速度稍慢。

(3)

  • 基于mysql8.0新建对的,然后字符集和排序规则都不设置,新建后,你会发现mysql默认设置为如下值:

字符集 :utf8mb4

排序规则:utf8mb4_0900_ai_ci

以utf8为例,它最多支持 3 个字节,当你存4字节的 utf8 编码字符时,会入库失败(常见的如:emoji ),在2010年重新发布了 utf8mb4 支持utf8。

  • mysql 数据库默认字符集

​ show variables like ‘character_set_database’;

  • mysql server(服务端)默认字符集

​ show variables like ‘character_set_server’

  • 43
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonHuan1123

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值