ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL介绍和安装

2022-01-27 06:33:28  阅读:160  来源: 互联网

标签:MySQL community 密码 介绍 mysql Community password 安装


二、MySQL介绍和安装

1 介绍

MySQL 数据库隶属于 MySQL AB 公司,总部位于瑞典,后被 Oracle 收购。

官方网站:https://www.mysql.com/

2 优点

  • 成本低:开放源代码,一般可以免费使用。

  • 性能高:执行很快。

  • 简单:很容易安装和使用。

3 MySQL的版本

  • 社区版(免费)

  • 企业版(收费)

作为学习使用社区版即可。

4 MySQL的安装

4.1 windows安装

访问该页面,选择windows 5.7版本下载,如图:
image

下载完成后解压,进入到bin目录下启动mysqld.exe即开启服务。

4.2 linux安装

以CentOS7安装mysql5.7为例,通过yum安装。

CentOS 7的yum源中默认没有mysql,要先下载mysql的repo源,点击这里获取,如图:
image

复制下载链接。

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

我们可以通过以下方法检测是否已经成功安装了yum源:

[root@control-plane ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                 230
mysql-tools-community/x86_64      MySQL Tools Community                      138
mysql80-community/x86_64          MySQL 8.0 Community Server                 321

当你使用此方法进行安装MySQL的时候,可以看到会默认安装mysql的最新稳定版本(MySQL 8.0 Community Server),如果想要安装以前的版本,比如5.7,需要进行配置。

首先我们先查看MySQL的哪些源被禁用或者启用了:

[root@control-plane ~]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64   MySQL Cluster 7.5 Community    禁用
mysql-cluster-7.5-community-source   MySQL Cluster 7.5 Community -  禁用
mysql-cluster-7.6-community/x86_64   MySQL Cluster 7.6 Community    禁用
mysql-cluster-7.6-community-source   MySQL Cluster 7.6 Community -  禁用
mysql-cluster-8.0-community/x86_64   MySQL Cluster 8.0 Community    禁用
mysql-cluster-8.0-community-source   MySQL Cluster 8.0 Community -  禁用
mysql-connectors-community/x86_64    MySQL Connectors Community     启用:    230
mysql-connectors-community-source    MySQL Connectors Community - S 禁用
mysql-tools-community/x86_64         MySQL Tools Community          启用:    138
mysql-tools-community-source         MySQL Tools Community - Source 禁用
mysql-tools-preview/x86_64           MySQL Tools Preview            禁用
mysql-tools-preview-source           MySQL Tools Preview - Source   禁用
mysql57-community/x86_64             MySQL 5.7 Community Server     禁用
mysql57-community-source             MySQL 5.7 Community Server - S 禁用
mysql80-community/x86_64             MySQL 8.0 Community Server     启用:    321
mysql80-community-source             MySQL 8.0 Community Server - S 禁用

看到现在启用的是8.0版本系列的。我们需要安装的是5.x系列的。那么我们就可以执行以下命令:

yum-config-manager --disable mysql80-community  #禁用8.0版本
yum-config-manager --enable mysql57-community  #启用5.7版本(需要哪个就启用哪个) 

上面的命令执行如果提示:-bash: yum-config-manager: 未找到命令 

那么我们就需要安装执行以下命令来安装一个包:yum install -y yum-utils 执行成功之后继续执行上面的命令。

再次查看:

[root@control-plane ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                 230
mysql-tools-community/x86_64      MySQL Tools Community                      138
mysql57-community/x86_64          MySQL 5.7 Community Server                 564

变为5.7版本,就可以开始安装mysql了。  

yum install -y mysql-community-server

启动mysql服务:

systemctl start mysqld  # 启动服务
systemctl status mysqld # 查看服务状态

如果是MySQL5.7版本以前,安装后的默认密码为空,直接回车即可进入。MySQL5.7会在安装后为root用户生成一个随机临时密码。但无论你安装的MySQL是哪个版本,无论使用哪种方式安装,无论是否需要密码登录,始终记住数据库的安全大于一切,所以请设置密码。

本次安装的MySQL没有设置密码,但系统赋予了默认的且临时的密码,如果是第一次安装且没有重复重启服务,打开mysql默认日志文件/var/log/mysqld.log,可以查看:

# 搜索临时密码,在日志文件中定位
grep 'temporary password' /var/log/mysqld.log

拿到密码后可以进行登录:

mysql -uroot -p
Enter password:P&runEFZ_9E<

4.3 docker安装

以mysql5.7为例,可以前往docker hub上搜索官方镜像:

docker pull mysql:5.7  # 如果不指定tag,默认是latest

创建容器:

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# MYSQL_ROOT_PASSWORD:root密码

如果要建立目录映射的mysql容器:

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

创建完成后,可以通过远程连接到该机器的3306端口。

5 MySQL的卸载

5.1 windows卸载

windows的卸载不难,请自己上网搜索。

5.2 linux卸载

首先查询系统是否安装了mysql

rpm -qa | grep -i mysql

image

image-20220124220857546

查看MySQL服务状态:

systemctl status mysqld

如果MySQL服务正在运行,停止MySQL服务

systemctl stop mysqld

卸载查询出来的这些组件:

mysql-community-common-5.7.37-1.el7.x86_64
mysql-community-client-5.7.37-1.el7.x86_64
mysql-community-server-5.7.37-1.el7.x86_64
mysql80-community-release-el7-5.noarch
mysql-community-libs-5.7.37-1.el7.x86_64
mysql-community-libs-compat-5.7.37-1.el7.x86_64

命令:

rpm -e --nodeps mysql-community-libs-compat-5.7.37-1.el7.x86_64
# 通过该命令删除所有组件

和Windows系统一样,MySQL的卸载不仅仅是卸载程序,也需要删除与程序相关的文件夹。才能保证卸载的完整性。

查看MySQL对应的文件夹

find / -name mysql
# 或者
whereis mysql

将查找出来的mysql目录rm -rf即可。

rm -rf  /usr/lib64/mysql
rm -rf  /usr/share/mysql

删除MySQL配置文件

rm -rf /etc/my.cnf
rm -rf /etc/init.d/mysqld

删除mysql用户及用户组

id mysql # 查看MySQL用户及用户组
userdel mysql

完成。

5.3 docker卸载

docker卸载很简单,首先查看容器id:

docker ps

删除该容器

docker stop containerID
docker rm containerID

如果挂载了数据卷,删除对应的目录即可完成卸载。

6 修改密码

如果是docker安装,在创建容器的时候就可以指定密码。而windows和linux需要修改密码,在终端中输入命令

mysqladmin -u用户名 -p password 新密码
# # 其中 username 为要修改密码的用户名,newpwd 为要修改的新密码,比如
mysqladmin -uroot -p password 123456

如果修改时提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,说明新密码比较简单,不符合密码策略。

可以先将原来的临时密码修改一位,把新密码暂时设置上。比如这样:

mysqladmin -uroot -p password runEFZ_9E

修改完成后,登录进入mysql,查看查看mysql初始的密码策略

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

关于 mysql 密码策略相关参数;

  • validate_password_length固定密码的总长度,默认为8位
  • validate_password_dictionary_file指定密码验证的文件路径,默认为空
  • validate_password_mixed_case_count整个密码中至少要包含大/小写字母的总个数,默认为1
  • validate_password_number_count整个密码中至少要包含阿拉伯数字的个数,默认为1
  • validate_password_policy指定密码的强度验证等级,默认为MEDIUM
  • 关于validate_password_policy的取值:
    • 0/LOW:只验证长度
    • 1/MEDIUM:验证长度、数字、大小写、特殊字符
    • 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件
  • validate_password_special_char_count整个密码中至少要包含特殊字符的个数,默认为1

如果需要修改密码策略,使用如下命令:

mysql> set global validate_password_length=6;  # 设置密码的总长度为6位
mysql> set global validate_password_policy=LOW;  # 设置密码的强度验证等级为LOW

现在可以为mysql设置简单密码了,只要满足六位的长度即可。但是在生产环境下,不要这么做,尽量使用高强度密码。

介绍另一种修改密码的方式,在登录进入mysql命令行的情况下:

# MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('123456'); 
# MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY '123456';

# 如果不清楚自己是什么版本,可以将两条都尝试一下。

现在,退出重新登录测试一下:

mysql -uroot -p123456

如果上面的方式不能修改可以使用下面安全模式修改root密码:

打开/etc/my.cnf文件,加上一行

skip-grant-tables
# 表示跳过安全检查(即登录时无需密码)

重启服务:

systemctl restart mysqld

直接登录即可登录成功:

mysql -uroot

登陆后,切换到mysql库

mysql> use mysql
Database changed

查看表结构

mysql> desc user;

需要注意的是5.7以上版本已经没有了Password字段,取而代之的是authentication_string字段。

修改密码:

mysql> update user set authentication_string='密码' where User='root' and host='localhost'; # 5.7及以上
mysql> update user set Password='密码' where User='root' and host='localhost'; # 5.6及以下

mysql> FLUSH PRIVILEGES;


修改成功后,要删掉刚刚配置文件中添加的`skip-grant-tables`,否则谁都可以登录了。

删除之后,再次重启服务

```bash
systemctl restart mysqld

完成。

7 MySQL服务的登录和退出

在安装了mysql的客户端的电脑上,通过命令行方式连接数据库:

mysql -h主机名 -P端口号 -u用户名 -p密码
# 如果连接本地,主机名和端口可以不写,比如:
mysql -uroot -p
# -p后面可以不写密码,而是根据提示输入密码,这样输入的密码是不可见的

还可以通过各种各样的工具来连接mysql,比如Navicat(下载和安装自行上网搜索):
image

标签:MySQL,community,密码,介绍,mysql,Community,password,安装
来源: https://www.cnblogs.com/yyyzyyyz/p/15848643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有