【第二章】MySQL数据库基于Centos7.3-部署
一、MySQL数据库的官方网址:
- https://www.mysql.com/
- https://www.oracle.com/
- http://dev.mysql.com/doc/refman/5.7/en/linux-installation.html
- https://dev.mysql.com/downloads/mysql/ //不同版本的安装文档和下载可以在这里找
一键安装参考我的另一篇博客:
【shell 每日一练7】一键安装mysql5.7,以及密码及策略修改
二、MySQL的安装方法:
以下是MySQL常见的三种安装方式:
- 二进制 rpm Yum Repository mysql57-community-release-el7-9.noarch.rpm
- 二进制 预编译 Generic mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
- 源码包安 Source Code mysql-5.7.19.tar.gz
三、Yum的方法安装MySQL:
- yum安装mysql 5.7 的官方安装方法地址:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
1、下载安装包
- 此地址为Mysql 8.0 的安装源其中包含MySQL 5.7的源,可以在后边步骤修改开放的仓库:https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
2、 设置安装初始环境
暂时先把防火墙关闭保证实验顺利:
[root@host- ~]# systemctl stop firewalld
[root@host- ~]# systemctl disable firewalld.service
临时关闭SELlinux:
[root@host- ~]# setenforce
永久关闭SELinux:
[root@host- ~]# sed -ri '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
查看SELinux状态:
[root@host- ~]# getenforce
Disabled
3、卸载系统自带的数据库(Centos7自带的是maridb)
可参考:【MySQL解惑笔记】Centos7下卸载彻底MySQL数据库
卸载maridb:
[root@host- ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.-.el7.x86_64
[root@host- ~]# yum -y remove mari*
[root@host- ~]# rm -rf /var/lib/mysql/*
[root@host-131 ~]# rpm -qa | grep mariadb
[root@host-131 ~]#
4、修改仓库
[root@host- src]# yum repolist all |grep mysql //查看所有仓库,并能够看到开启和禁用的仓库
[root@host- src]# yum repolist enabled | grep "mysql.*-community.*" //查看所有开启的仓库,发现现在开启的是MySQL 8.0的,我们需要开启MySQL5.7的仓库
mysql-connectors-community/x86_64 MySQL Connectors Community
mysql-tools-community/x86_64 MySQL Tools Community
mysql80-community/x86_64 MySQL 8.0 Community Server 17 //k
开启和关闭不同仓库,官方提供了三种修改方法:
方法一:使用此方法时候要检测一下自己平台是否支持yum-config-manager命令:
因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了
shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql57-community 方法二:
shell> sudo dnf config-manager --disable mysql57-community
shell> sudo dnf config-manager --enable mysql56-community 方法三:
我们直接修改Yum源文件:
[root@host- ~]# cd /etc/yum.repos.d
[root@host- yum.repos.d]# vim mysql-community.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled= //修改为1表示开启
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled= //修改为0表示关闭
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [root@host- yum.repos.d]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community
mysql-tools-community/x86_64 MySQL Tools Community
mysql57-community/x86_64 MySQL 5.7 Community Server 267 //可以看到5.7存储仓库已经开启
注意:我们应该在任何时候只启用一个发布系列的子存储库。当启用多个发布系列的子存储库时,Yum将使用最新的系列。
通过运行以下命令并检查其输出(对于Fedora,用dnf替换yum),验证是否启用了正确的子库并禁用了它:
[root@host- yum.repos.d]# yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community
mysql-tools-community/x86_64 MySQL Tools Community
mysql57-community/x86_64 MySQL 5.7 Community Server
5、安装MySQL数据库
[root@host- yum.repos.d]# yum -y install mysql-community-server
[root@host- ~]# systemctl start mysqld
[root@host- ~]# systemctl enable mysqld 设置开机自启动
[root@host- ~]# systemctl status mysqld 查看mysql启动状态 [root@host- ~]# ls /var/lib/mysql (安装后可以看到初始化的数据库)
auto.cnf client-cert.pem ibdata1 ibtmp1 mysql.sock.lock public_key.pem sys
ca-key.pem client-key.pem ib_logfile0 mysql performance_schema server-cert.pem
ca.pem ib_buffer_pool ib_logfile1 mysql.sock private_key.pem server-key.pem
6、首次登录数据库,并设置初始化密码
[root@host- ~]# mysql
ERROR (): Access denied for user 'root'@'localhost' (using password: NO)
发现是禁止访问的 在服务器的初始启动时,由于服务器的数据目录为空:服务器初始化。SSL证书和密钥文件是在数据目录中生成的。
安装并启用了validate_password。
一个超级用户帐户'root'@'localhost被创建。
超级用户的密码被设置并存储在错误日志文件中。要显示它,请使用以下命令: MySQL5.5之前版本安装后可以直接登录
MySQL5.5自动生成的密码是空的
MySQL5.6是将密码放在root下的
MySQL5.7是将密码放在:
[root@host- ~]# grep 'temporary password' /var/log/mysqld.log
--30T06::.956716Z [Note] A temporary password is generated for root@localhost: xt8S3rWXOL/C
[root@host- ~]#
[root@host- ~]# mysql -uroot -p"xt8S3rWXOL/C"
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.22
修改密码:
方法一:
[root@host- ~]# mysqladmin -uroot -p"xt8S3rWXOL/C" password "Yanglt123." //密码要满足复杂性要求
[root@host- ~]# mysql -uroot -p"Yanglt123." 方法二:
[root@host-131 ~]# grep 'temporary password' /var/log/mysqld.log
2018-05-30T06:34:56.956716Z 1 [Note] A temporary password is generated for root@localhost: xt8S3rWXOL/C
[root@host-131 ~]#
[root@host-131 ~]# mysql -uroot -p"xt8S3rWXOL/C"
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
到此数据库安装成功:
源码安装可参考文章:【Linux运维】LNMP环境配置
【第二章】MySQL数据库基于Centos7.3-部署的更多相关文章
- MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化
第9章 MySQL数据库Schema设计的性能优化 前言: 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区.真正影响性能最大的部分是在设计中就 ...
- MySQL性能调优与架构设计——第8章 MySQL数据库Query的优化
第8章 MySQL数据库Query的优化 前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 ...
- 第二章 Oracle数据库应用
第二章 Oracle数据库应用2.1 表空间和用户权限下管理 2.1.1 表空间 2.1.1.1 分类: 永久性表空间 临时性表空间 ...
- MySQL性能调优与架构设计——第7章 MySQL数据库锁定机制
第7章 MySQL数据库锁定机制 前言: 为了保证数据的一致完整性,任何一个数据库都存在锁定机制.锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核 ...
- MySQL篇,第二章:数据库知识2
MySQL 数据库 2 名词介绍 1.DB(Database) DB就是数据库,存储数据的仓库 2.DBMS(Database Management System) 数据库管理系统 管理数据库的软件, ...
- 第 8 章 MySQL 数据库 Query 的优化
前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化进行相应的分析. ...
- 第 9 章 MySQL数据库Schema设计的性能优化
前言: 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区.真正影响性能最大的部分是在设计中就已经产生了的,后期的优化很多时候所能够带来的改善都只 ...
- 第 7 章 MySQL 数据库锁定机制
前言: 为了保证数据的一致完整性,任何一个数据库都存在锁定机制.锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一.本章将对 MySQ ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
随机推荐
- 小程序的get和post需要注意的地方
在进行异步请求之前先去小程序后台配置好服务器域名. get请求:header: { 'content-type':'json'}就可以. post请求:header: { 'content-type' ...
- Python 学习笔记(十四)Python类(二)
创建简单的类 新式类和经典类(旧式类) Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Python 3.x中默认都是新式类,经典类被移除,不必显式的继承object 新式 ...
- 项目中常用的MySQL优化方法--壹拾玖条
1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...
- 初试mininet(可选PyCharm)
目录 0x00 Mininet 0x01 Important classes, methods, functions 0x02 Sample 0x04 run in shell 0x05 Output ...
- css之层叠上下文和层叠顺序
大家在写网页的时候会不会经常遇到莫名奇妙的样式问题,比如谁覆盖了谁.也找不出原因,为什么z-index高的却没有覆盖掉z-index低的元素呢? 带着这些疑问.我做了个小实验.代码如下: <st ...
- python django web 端文件上传
利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django的forms,也不需要django的models,就可以实现,下面开始实现. 第一步:在模板文件中,创建一个f ...
- 《Redis设计与实现》- 数据库
1. 服务器中数据库结构 Redis 服务器将所有数据库都保存在服务器状态 redisServer 结构的 db 数组中,由 redisDb 结构代表一个数据库 struct redisServer ...
- 解决GetTickCount的问题
GetTickCount是一个api,它是反应到从开机到当前的毫秒数,这个很好.可以做一些短途的计时器. 比如说做服务器中对象池计时器,对象超过多少时间就自动释放对象. 但是GetTickCount也 ...
- 【一】Spark基础
Spark基础 什么是spark 也是一个分布式的并行计算框架 spark是下一代的map-reduce,扩展了mr的数据处理流程. Spark架构原理图解 RDD[Resilient Distrib ...
- 嵌入式C语言自我修养 07:地址对齐那些事儿
7.1 属性声明:aligned GNU C 通过 __atttribute__ 来声明 aligned 和 packed 属性,指定一个变量或类型的对齐方式.这两个属性用来告诉编译器:在给变量分配存 ...