MySQL5.7.28_01_基于glibc的tar包安装

Mysql5.7.28 安装

正所谓入门从安装开始,下面说下Mysql5.7.28的安装教程,博主一步一步的走来的;后续也会继续更新MySQL相关知识点,也是面试中常问的

环境准备

安装环境:Centos7 (镜像下载:https://www.centos.org/ 与VM搭建虚拟机环境;这里就不介绍了,不会的自行百度)
mysql版本:5.7.28 (在官网https://dev.mysql.com/downloads/mysql/下载mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz)
安装方式:基于glibc的tar包安装;将下载好的tar包上传至虚拟机某个目录下面,我这边用的目录是/local

解压安装包并移动到安装位置
$ tar -zxvf /local/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
$ mkdir /local/mysql-5.7.28
$  mv /local/mysql-5.7.28-linux-glibc2.12-x86_64/* /local/mysql-5.7.28
创建mysql用户及组
$ groupadd mysql
$ useradd -g mysql mysql -s /sbin/nologin

创建之前可以用下面命令查询mysql用户及组是否存在

$ cat /etc/group | grep mysql
$ cat /etc/passwd | grep mysql
修改目录权限
$ chown -R mysql:mysql /local/mysql-5.7.28/

查看是否授权成功
在这里插入图片描述

初始化数据库
$  cd mysql-5.7.28/
$ bin/mysqld --initialize --user=mysql --basedir=/local/mysql-5.7.28 --datadir=/local/mysql-5.7.28/data

初始化数据库会生成一个默认密码,用于第一次登陆,记住在这里插入图片描述

开启SSL
$ bin/mysql_ssl_rsa_setup --datadir=/local/mysql-5.7.28/data

SSL是MySQL5.7版本及之后提供的一种安全访问配置;这个命令mysql5.7默认是开启的,所以执不执行无所谓,开启方式自行百度,这块就不多做介绍了

  • 1、MySQL5.7默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
  • 2、虽然SSL方式使得安全性提高了,但是相对地使得QPS也降低23%左右。所以要谨慎选择:
    • 2.1、对于非常敏感核心的数据,或者QPS本来就不高的核心数据,可以采用SSL方式保障数据安全性;
    • 2.2、对于采用短链接、要求高性能的应用,或者不产生核心敏感数据的应用,性能和可用性才是首要,建议不要采用SSL方式;
修改配置文件
$ vi /etc/my.cnf

内容如下
在这里插入图片描述
修改后内容如下,可以直接拷贝放进/etc/my.cnf

[mysqld]
basedir=/local/mysql-5.7.28
datadir=/local/mysql-5.7.28/data
socket=/local/mysql-5.7.28/mysql.sock
# 不区分大小写
lower_case_table_names=1
# 默认引擎
default-storage-engine=InnoDB
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/local/mysql-5.7.28/log/mysql-error.log
pid-file=/local/mysql-5.7.28/mysqld.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

创建目录及日志文件

$ mkdir log
$ touch mysql-error.log

其中在/local/mysql-5.7.28创建了新的目录/log;所以需要重新授权一下

$ chown -R mysql:mysql /local/mysql-5.7.28/
到此就可以启动mysql服务了

首先修改mysql.server文件第46,47行
在这里插入图片描述
启动

$ support-files/mysql.server start
设置MySQL开机启动服务
$ cp /local/mysql-5.7.28/support-files/mysql.server /etc/init.d/mysqld
$ chkconfig --add mysqld
$ service mysqld restart

service mysqld status查看mysql服务状态

连接数据库修改密码
$ mysql -uroot -p

此时提示:-bash: mysql: 未找到命令;原因是:系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下;所以执行下面命令添加链接

$ ln -s /local/mysql-5.7.28/bin/mysql /usr/bin

再次连接数据库,此时的密码为前面提示的默认密码

$ mysql -uroot -p'hluzV4pHY)u5'

此时可能会报如下错误在这里插入图片描述
这种错误就很明显是找不到/tmp/mysql.sock;解决方法:1,建立一个软连接ln -s /local/mysql-5.7.28/mysql.sock /tmp/mysql.sock;2,在/etc/my.cnf文件最上面添加如下内容

[mysql]   
socket=/tmp/mysql.sock 

重启mysql

$  service mysqld restart

再次连接数据库就可以连上了,修改密码

$ set PASSWORD = PASSWORD('123456');
$ flush privileges;

这里顺便提一下,有的版本会有密码校验规则,简单的密码无法设置,这个可以进行修改;方式如下
1,查看一下msyql密码相关的几个全局参数

> show variables like 'validate_password%';

在这里插入图片描述
2,参数解释
+validate_password_policy:密码强度检查等级,默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有以下取值:

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file
  • validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
  • validate_password_length:密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
  • validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
  • validate_password_number_count:密码至少要包含的数字个数。
  • validate_password_special_char_count:密码至少要包含的特殊字符数。
    可以自行对应进行修改
允许远程连接

首先查看mysql端口号,默认3306不用说;登陆mysql输入下面命令

> show global variables like ‘port’;

在这里插入图片描述
然后关闭端口防火墙

  • 1,查看已经开放的端口号
$ firewall-cmd --list-ports
  • 2,mysql对应端口号未开启,则开启端口
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效

  • 3,重启防火墙
$ firewall-cmd --reload
  • 4,上面步骤不执行,或者直接关闭防火墙也可以
$ systemctl stop firewalld.service 
$ systemctl disable firewalld.service

查看mysql用户

> use mysql
> select user,host from user;

在这里插入图片描述
支持root用户允许远程连接mysql数据库

> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
> flush privileges;

在这里插入图片描述
外部远程就可以允许连接了,如果还不能连接,注意查看my.cnf是否存在bind-address = 127.0.0.1这一行;存在的话将其注释或者修改为
bind-address = 0.0.0.0,然后重启服务即可

前面说的开启SSL这里再提一下

连接数据库后,执行下面命令可以查看SSL是否开启

> show global variables like '%ssl%';

在这里插入图片描述
查看dba连接方式

> \s

在这里插入图片描述
具体开启方式,这里就不进行阐述了,可以自行百度,很简单;当然开启SSL会有额外的性能消耗的

至此mysql 5.7.28已经安装完成

相关文章

MySQL5.7.28_01_基于glibc的tar包安装
MySQL5.7.28_02_一张图片带你入门MySQL
MySQL5.7.28_03_一张图片带你进阶MySQL
MySQL5.7.28_03-1_一篇简单文章让你理解B- Tree和B+ Tree理解
MySQL5.7.28_03-2_MySQL中MyISAM与InnoDB引擎中的锁的简单理解
MySQL5.7.28_03-3_理解MySQL主从复制(也叫做主从同步)
MySQL5.7.28_03-4_MySQL 分布式ID方案总结
MySQL5.7.28_04_MySQL相关规范(实际工作中需要注意的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值