mysql_08_ yum(dnf)安装
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.repo
和 mysql-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)安装相关推荐
- rpm和yum/dnf 安装方式与区别
RPM:Redhat Package Manager, redhat公司提出的软件包管理标准 包的后缀名:.rpm 缺点:不能主动解决依赖关系,比如说windows安装ensp-> 提示你去下载 ...
- centos7/8使用yum/dnf安装java并设置环境变量
1.首先可执行命令,检测系统是否已经存在java版本 yum list installed |grep java 已安装的话,会显示对应版本,如果已安装的版本可以满足使用,则不需要进行之后的操作,直接 ...
- yum/dnf 安装mariadb10.4.8(最新版)
本文首发于我的个人网站: https://hewanyue.com/ 本文作者: Hechao 本文链接: https://hewanyue.com/blog/72c5296a.html 近期想在 ...
- Centos8下yum/dnf安装php
1.安装Remi存储库 dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm 2.更新系统默认的ph ...
- Linux rpm和yum/dnf安装方式及区别
rpm是以一种数据库记录的方式来将将所需要的套件安装在Linux主机的一套管理程序.也就是说Linux系统中存在一个关于rpm的数据库,它记录了安装的包与包之间的依赖相关性.rpm包是预先在Linux ...
- Linux如何准确判断rpm,yum,dnf进程是否阻塞[运行]?
如果你是一个程序员,你会知道,rpm, yum, dnf这三个进程是否运行,如果运行,是否阻塞? 简单常用但不严谨的做法 一个简单方法是通过 ps -ef | grep rpm | grep -v g ...
- yum和dnf安装安全更新
Centos7的yum安全更新 仅适用于Centos7,不适用于RHEL8 Centos7的yum自动安装更新脚本 #!/usr/bin/env bash# 安装yum自动更新工具 yum insta ...
- CentOS 8配置 yum/dnf 镜像源 | 安装 Docker | DockerCompose | SimpleDocker 及其相关操作
Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容 ...
- 13.Centos软件包管理(rpm,yum,dnf),源码编译安装
基础知识 软件运行和编译 ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) P ...
最新文章
- 重庆python就业工资待遇-重庆Python人工智能编程
- .py与.pyc文件区别
- ir指令、立即数的作用_立即数的判断方法一
- mariadb的explain分析及InnoDB存储引擎
- mysql 导入 redis_mysql 数据导入redis缓存
- excel保存超过15位数据不变科学计数法的方法
- 开源硬件 专利_标准和开源:为什么专利待遇不同?
- java 泛型 t extends_Java泛型的定义以及对于? extends T和? super T
- (转) 淘淘商城系列——解决KindEditor上传图片浏览器兼容性问题
- 毛概社会实践报告3000字
- 【2021牛客暑期多校训练营5】Double Strings(二维字符串dp)
- 直关的sql 联级更新语句
- [zt]扫盲,什么叫MAD(a11s)
- ascii码表的使用
- php框架laravel手册,Laravel 5 框架入门(一)
- 复活Google右键翻译方法及Google浏览器网页一键翻译
- c语言用递归求质因子,使用递归方法求解整数质因子
- [读书笔记]《番茄工作法图解:简单易行的时间管理方法》
- Web基础-JSON和AJAX
- 第一课 安装 登陆CentOS 7