Mysql使用yum(dnf)安装

为了数据安全、性能等各方面的原因,一般生产环境中,可以将mysql直接在宿主机上运行,不使用docker,mysql yum安装(dnf 和yum 配置一样)的配置如下:

下载 yum 源

官网地址: https://dev.mysql.com/downloads/repo/yum/
下载指定 的rpm包上传到服务器上,这里我下载的是mysql80-community-release-el8-1.noarch.rpm

[root@www ~]# pwd
/root
[root@www ~]# ll
-rw-r--r--  1 root root     30388 Apr 10 11:08 mysql80 mysql80-community-release-el8-1.noarch.rpm

安装yum源

以下三个命令任选择一种即可

## 使用 yum安装
[root@www ~]# yum install mysql80 mysql80-community-release-el8-1.noarch.rpm -y
## 使用 dnf 安装
[root@www ~]# dnf install mysql80 mysql80-community-release-el8-1.noarch.rpm -y
## 使用 rpm 安装
[root@www ~]# rpm -ivh mysql80 mysql80-community-release-el8-1.noarch.rpm

执行完成后,会在 /etc/yum.repos.d/ 目录生成 mysql-community.repomysql-community-source.repo 文件

[root@www ~]# ll /etc/yum.repos.d/
total 88
-rw-r--r--. 1 root root  731 Jun  3  2020 CentOS-AppStream.repo
-rw-r--r--. 1 root root  712 Jun  3  2020 CentOS-Base.repo
-rw-r--r--. 1 root root  798 Jun  3  2020 CentOS-centosplus.repo
-rw-r--r--. 1 root root 1043 Jun  3  2020 CentOS-CR.repo
-rw-r--r--. 1 root root  668 Jun  3  2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  743 Jun  3  2020 CentOS-Devel.repo
-rw-r--r--. 1 root root  756 Jun  3  2020 CentOS-Extras.repo
-rw-r--r--. 1 root root  338 Jun  3  2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  738 Jun  3  2020 CentOS-HA.repo
-rw-r--r--. 1 root root  928 Jun  3  2020 CentOS-Media.repo
-rw-r--r--. 1 root root  736 Jun  3  2020 CentOS-PowerTools.repo
-rw-r--r--. 1 root root 1382 Jun  3  2020 CentOS-Sources.repo
-rw-r--r--. 1 root root   74 Jun  3  2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 2424 Jul 25  2020 docker-ce.repo
-rw-r--r--. 1 root root 1177 Nov  1 04:31 epel-modular.repo
-rw-r--r--. 1 root root 1259 Nov  1 04:31 epel-playground.repo
-rw-r--r--. 1 root root 1114 Nov  1 04:31 epel.repo
-rw-r--r--. 1 root root 1276 Nov  1 04:31 epel-testing-modular.repo
-rw-r--r--. 1 root root 1213 Nov  1 04:31 epel-testing.repo
-rw-r--r--  1 root root  995 Oct  4  2019 mysql-community.repo
-rw-r--r--  1 root root 1050 Oct  4  2019 mysql-community-source.repo
-rw-r--r--. 1 root root  160 Dec 10  2019 wlnmp-release-centos.repo
[root@www ~]#

如果要卸载rpm

## 查询
[root@www ~]# rpm -qa|grep mysql
mysql80-community-release-el8-1.noarch
## 卸载
[root@www ~]# rpm -e mysql80-community-release

启动指定的mysql版本:

## 因为我这里本来下载的源就是mysql8的,所以这一步可以省略。
[root@www ~]# dnf config-manager --enable mysql80-community## 启动后,在这个文件中的 mysql80-community enabled=1,,表示启动这个版本作为默认
[root@www ~]# cat /etc/yum.repos.d/mysql-community.repo
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

禁用系统默认版本

[root@www ~]# dnf module disable mysql

安装Mysql

## 查询yum源中的所有mysql,如下,会显示很多mysql版本
[root@www ~]# dnf --showduplicates list|grep mysql-community-server
mysql-community-server.x86_64                             8.0.17-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.18-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.19-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.20-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.21-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.22-1.el8                                      mysql80-community
mysql-community-server.x86_64                             8.0.23-1.el8                                      mysql80-community
[root@www ~]# ## 格式为 dnf instll mysql-community-server版本 ,如果直接执行 dnf instll mysql-community-server -y,会下载最新的版本
[root@www ~]# dnf install mysql-community-server-8.0.22 -y

配置Mysql参数

  • /etc/my.conf添加 如下
[root@www etc]# vim /etc/my.cnf## 指定配置从哪个目录加载
!includedir /etc/my.cnf.d/
  • 创建 mysql.conf配置
[root@www etc]# vim /etc/my.cnf.d/mysql.cnf
[mysqld]
#忽略表名大小写
lower_case_table_names=1
#允许最大连接数,默认为 151
max_connections=500
#允许连接失败的次数,可以防止有人从该主机试图攻击数据库系统,默认值为100
max_connect_errors=10
################################  InnoDB         ########################################
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
innodb_buffer_pool_size=2G
#innodb_additional_pool_size=20M
innodb_log_file_size=256M
innodb_log_buffer_size=12M
innodb_flush_log_at_trx_commit=2
#innodb_flush_method
#thread_cache=8
#innodb_autoextend_increment=128M
#这里确认是否起用压缩存储功能
innodb_file_per_table=1
#innodb_file_format=barracuda #mysql 8 不支持该功能
#决定压缩程度的参数,如果你设置比较大,那么压缩比较多,耗费的CPU资源也较多;
#相反,如果设置较小的值,那么CPU占用少。默认值6,可以设置0-9#
innodb_compression_level=6
#指定在每个压缩页面可以作为空闲空间的最大比例,
#该参数仅仅应用在设置了innodb_compression_failure_threshold_pct不为零情况下,并且压缩失败率通过了中断点。
#默认值50,可以设置范围是0到75
innodb_compression_pad_pct_max=50
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
# 配置 init_connect 需要配置 super 权限,否则普通用户连接时会报错: Lost connection to MySQL server during query
# init_connect=’SET NAMES utf8mb4'
# ## 忽略客户端使用的字符集,使用服务端的字符集
character-set-client-handshake=OFF
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4

启动 Mysql

## 启动
[root@www ~]# systemctl start mysqld.service
## 查看mysql服务状态
[root@www ~]# systemctl status mysqld.service
## 添加开机启动
[root@www ~]# systemctl enable mysqld.service

查看 Mysql 进程:

如下所示,Mysql服务已启动成功,并监听3306端口

[root@www ~]# ps -ef|grep mysql
mysql      34011       1  3 13:59 ?        00:00:05 /usr/sbin/mysqld
root       34125    5808  0 14:02 pts/0    00:00:00 grep --color=auto mysql
[root@www ~]# netstat -anpl|grep 3306
tcp6       0      0 :::33060                :::*                    LISTEN      34011/mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      34011/mysqld
[root@www ~]#

Mysql默认安装目录

  • 配置文件: /etc/my.conf
  • 数据目录: /var/lib/mysql
  • 日志文件: /var/log/mysqld.log

Mysql默认密码

## 查看日志文件,有个generated for root 的日志最后就是密码,如这里的密码就是  w=HweHqG*0)O
[root@www ~]# cat /var/log/mysqld.log
2021-04-10T05:59:43.377330Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.22) initializing of server in progress as process 33966
2021-04-10T05:59:43.382242Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-04-10T05:59:43.573803Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-04-10T05:59:44.303221Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: w=HweHqG*0)O

登陆Mysql、密码组件安装卸载

## 输入日志文件中的默认密码登陆
[root@www ~]#  mysql -uroot -p
Enter password:

初次登陆后,需要强制修改密码,密码需要一定的格式,格式规则可通过 SHOW VARIABLES LIKE '%validate_password%' 查看,如果你觉得修改 validate_password.xxx的参数太多,比较麻烦,可以直接卸载 myql 密码验证的 component。

mysql> alter user 'root'@'localhost' IDENTIFIED BY 'Root@1234';
Query OK, 0 rows affected (0.01 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.22    |
+-----------+
1 row in set (0.00 sec)-- 查看密码设置的规则
-- validate_password.length: 密码长度,最小值4,默认值为8
-- validate_password.mixed_case_count  大小写的最小个数
-- validate_password.number_count 密码中数字的最小个数
-- validate_password.policy 密码验证策略: 0-->LOW 1-->MEDIUM  2-->strong
-- validate_password.special_char_count  特殊字符的最小个数
mysql> SHOW VARIABLES LIKE '%validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| 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> set global validate_password.length=4;
-- mysql> set global validate_password.policy=LOW;
-- mysql> set global validate_password.number_count=0;
-- mysql> set global validate_password.special_char_count=0;-- 如果你觉得上面一个个设置参数太麻烦,可以直接卸载MySql密码验证的 component
-- 查看component
mysql> SELECT * FROM mysql.component;
+--------------+--------------------+------------------------------------+
| component_id | component_group_id | component_urn                      |
+--------------+--------------------+------------------------------------+
|            1 |                  1 | file://component_validate_password |
+--------------+--------------------+------------------------------------+
1 row in set (0.00 sec)-- 卸载组件,卸载之后, validate_password.xxx 的这些参数将不存在,且可任意设置Mysql的密码
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.01 sec)-- 卸载validate_password组件后,设置mysql密码将不验证,可任意配置
mysql> alter user 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)-- 如果你想安装组件,执行install命令
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.00 sec)-- 再次查看,组件又回来了,同时,上面的 validate_password.xxx 的这些参数也会存在。
mysql> SELECT * FROM mysql.component;
+--------------+--------------------+------------------------------------+
| component_id | component_group_id | component_urn                      |
+--------------+--------------------+------------------------------------+
|            2 |                  2 | file://component_validate_password |
+--------------+--------------------+------------------------------------+
1 row in set (0.00 sec)
mysql>

修改mysql远程访问权限

默认情况下,Mysql只能在本机访问,如果需要远程连接,操作如下:

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changedmysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)-- 使用 update会更新已存在的用户,也可以使用 grant 语句。
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0-- 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)--  再次查询,如下 ,root 用户的host 为%了,此时可以所有客户端可以连接mysql。
mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
mysql>

卸载Mysql

## 先停止mysql启动服务
[root@www ~]# systemctl disable mysqld.service
## 删除 mysql
[root@www ~]# dnf remove mysql-community-server
## 删除mysql数据目录
[root@www ~]# rm -rf /var/lib/mysql
[root@www ~]# rm -rf /usr/share/mysql
[root@www ~]# rm -rf /usr/lib/mysql
[root@www ~]# rm -rf /var/run/mysql/
[root@www ~]# rm -rf /var/log/mysqld.log

mysql_08_ yum(dnf)安装相关推荐

  1. rpm和yum/dnf 安装方式与区别

    RPM:Redhat Package Manager, redhat公司提出的软件包管理标准 包的后缀名:.rpm 缺点:不能主动解决依赖关系,比如说windows安装ensp-> 提示你去下载 ...

  2. centos7/8使用yum/dnf安装java并设置环境变量

    1.首先可执行命令,检测系统是否已经存在java版本 yum list installed |grep java 已安装的话,会显示对应版本,如果已安装的版本可以满足使用,则不需要进行之后的操作,直接 ...

  3. yum/dnf 安装mariadb10.4.8(最新版)

    本文首发于我的个人网站: https://hewanyue.com/ 本文作者: Hechao 本文链接: https://hewanyue.com/blog/72c5296a.html   近期想在 ...

  4. Centos8下yum/dnf安装php

    1.安装Remi存储库 dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm 2.更新系统默认的ph ...

  5. Linux rpm和yum/dnf安装方式及区别

    rpm是以一种数据库记录的方式来将将所需要的套件安装在Linux主机的一套管理程序.也就是说Linux系统中存在一个关于rpm的数据库,它记录了安装的包与包之间的依赖相关性.rpm包是预先在Linux ...

  6. Linux如何准确判断rpm,yum,dnf进程是否阻塞[运行]?

    如果你是一个程序员,你会知道,rpm, yum, dnf这三个进程是否运行,如果运行,是否阻塞? 简单常用但不严谨的做法 一个简单方法是通过 ps -ef | grep rpm | grep -v g ...

  7. yum和dnf安装安全更新

    Centos7的yum安全更新 仅适用于Centos7,不适用于RHEL8 Centos7的yum自动安装更新脚本 #!/usr/bin/env bash# 安装yum自动更新工具 yum insta ...

  8. CentOS 8配置 yum/dnf 镜像源 | 安装 Docker | DockerCompose | SimpleDocker 及其相关操作

    Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容 ...

  9. 13.Centos软件包管理(rpm,yum,dnf),源码编译安装

    基础知识 软件运行和编译 ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) P ...

最新文章

  1. 重庆python就业工资待遇-重庆Python人工智能编程
  2. .py与.pyc文件区别
  3. ir指令、立即数的作用_立即数的判断方法一
  4. mariadb的explain分析及InnoDB存储引擎
  5. mysql 导入 redis_mysql 数据导入redis缓存
  6. excel保存超过15位数据不变科学计数法的方法
  7. 开源硬件 专利_标准和开源:为什么专利待遇不同?
  8. java 泛型 t extends_Java泛型的定义以及对于? extends T和? super T
  9. (转) 淘淘商城系列——解决KindEditor上传图片浏览器兼容性问题
  10. 毛概社会实践报告3000字
  11. 【2021牛客暑期多校训练营5】Double Strings(二维字符串dp)
  12. 直关的sql 联级更新语句
  13. [zt]扫盲,什么叫MAD(a11s)
  14. ascii码表的使用
  15. php框架laravel手册,Laravel 5 框架入门(一)
  16. 复活Google右键翻译方法及Google浏览器网页一键翻译
  17. c语言用递归求质因子,使用递归方法求解整数质因子
  18. [读书笔记]《番茄工作法图解:简单易行的时间管理方法》
  19. Web基础-JSON和AJAX
  20. 第一课 安装 登陆CentOS 7

热门文章

  1. 英语语法:定语从句讲解
  2. L1-7 矩阵列平移
  3. R语言Bioconductor安装全流程
  4. 来酷新生态 抢滩元宇宙:首发数码类数字藏品
  5. Python爬虫-中华英才网登陆JS加密登陆
  6. 《从程序员到项目经理》读后感-直率
  7. 【Antd】Table组件数据重新渲染后筛选项如何清空
  8. matlab啁啾信号,用matlab来理解短脉冲中啁啾和色散的思想。.doc
  9. xff头使用sqlmap注入(心血来潮的分享)
  10. 使用VS2015 VC++第一步 写一个hello world程序