第二章 安装与初始化

第二章 安装与初始化

1,安装

1.1,二进制安装(5.7.20版本)(本人所用)

  • 解压后就是所有内容,类似于windows中经常下载的绿色软件(不用安装 ,直接解压,打开可执行程序运行)

image.png

image.png

image.png

image.png

image.png

  • #下载完成,将下载的文件“mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz”放入新建的文件夹"/app"
    

开始安装

1,预处理

1#卸载已安装的MySQL,Mariadb数据库
[root@localhost ~]#
[root@localhost ~]# rpm -qa mariadb*
mariadb-libs-5.5.65-1.el7.x86_64		//有安装,需要卸载
[root@localhost ~]# yum -y remove mariadb-libs

2#解压下载的压缩文件
(前提:pwd一下,当前目录为/root,并且将安装包放到/root下)
[root@localhost ~]# ls
anaconda-ks.cfg               initial-setup-ks.cfg
CentOS-7-x86_64-DVD-2003.iso  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# mkdir /app
[root@localhost ~]# cp mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz /app
[root@localhost ~]# cd /app
[root@localhost app]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

#tar命令:解压存档文件;x:从存档文件中提起文件;f:指定存档文件的名称

3#将解压生成的文件夹名称改为“mysql”
[root@localhost app]# ls
mysql-5.7.20-linux-glibc2.12-x86_64  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@localhost app]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
[root@localhost app]# ls
mysql  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

4#创建数据文件
[root@localhost app]# mkdir -p /data/mysql

5#修改环境变量,文件末尾添加:export PATH=/app/mysql/bin:$PATH
[root@localhost app]# vim /etc/profile
[root@localhost app]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

6#读取执行命令,更新环境变量
[root@localhost app]# source /etc/profile
[root@localhost app]# echo $PATH
/app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

7#创建用户和组
(-M:不要创建用户的主目录;-s:新帐户的登录shell)
[root@localhost app]# useradd mysql -s /sbin/nologin -M

8#文件夹授权给MySQL用户
(递归修改整个目录属主属组)
[root@localhost app]# chown mysql:mysql /app/* -R
[root@localhost app]# chown mysql:mysql /data/* -R

2,准备数据

#说明:
1,一个软件通常会有两部分组成:软件部分和数据部分
2,压缩包解压后,/app/mysql文件夹成为mysql软件部分
3,数据部分分为两部分:
系统数据:维护软件运行所需的数据
用户数据:软件运行期间,用户和软件相关的数据
#初始化
#方法一(不建议用,怕出错):
初始化软件和数据文件夹,注意mysqld命令的成功执行,需要环境变量PATH设置成功,否则需要写完整路径:/app/mysql/bin/mysqld ...
[
root @node1 app]# mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql[root @node1 app]#  mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql&>/data/mysql.log

image.png

#mysql从5.7版开始,增加了全新的密码安全机制:
	1. 初始化完成后,会生成临时密码(显示在屏幕上,并在日志文件中记录一份)
	2. 密码的强度:长度+字符类型
	3. 密码过期时间:180天

image.png

/data/mysql文件夹下也创建了文件
#方法二:
初始化密码为空,不适用mysql5.7的默认密码安全机制
[root @node1 app]# mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql

image.png

image.png

如果/data/mysql文件夹不为空,则会报错

#清空/data/mysql文件夹后,如果未停止mysqld服务(ps aux|grep mysqld),需要使用pkill直接杀死:pkill mysqld*

注:mysql5.6的初始化方法:
mysql_install_db --user=mysql --datadir=dataurl  --basedir=baseurl

1.2,yum源安装

1,epel.release
RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题。

什么是EPEL?

EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。

如果你知道rpmfusion.org的话,拿 rpmfusion 做比较还是很恰当的,rpmfusion 主要为桌面发行版提供大量rpm包,而EPEL则为服务器版本提供大量的rpm包,而且大多数rpm包在官方 repository 中是找不到的。

另外一个特点是绝大多数rpm包要比官方repository 的rpm包版本要来得新

#安装epel源:
yum -y install epel.release

2,从官网下载MySQL的yum源安装包

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3,将下载的yum源包安装

yum -y install mysql57-community-release-el7-10.noarch.rpm

image.png

4,安装mysql服务器端

yum  -y install  mysql-community-server

5,安装mysql客户端

yum  -y  install  mysql

4与5合并:

yum -y  install  mysql-community-server  mysql

image.png

2,初始化,基本用法

2.1,二进制安装(本人所用)

1,配置文件/etc/my.cnf

[root @node1 app]# vim /etc/my.cnf
模版内容:
[mysqld]
basedir=/app/mysql
datadir=/data/mysql
user=mysql
server_id=1
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=server1[\\d]>

2,启动与停止mysql

#方式一
[root @node1 app]# cd /app/mysql/support-files
[root @node1 support-files]# ./mysql.server start
#方式二(CentOS6)

将方式一中用到的mysql.server拷贝到/etc/init.d/,更名为mysqld

[root @node2 app] cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
[root @node2 app] service mysqld start
#方式三(CentOS7)

在文件夹/etc/systemd/system/下创建文件mysqld.service

[root @node2 app]# vim  /etc/systemd/system/mysqld.service
#内容如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=Multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
[root @node2 app]# systemctl start mysqld

3,简单的操作

#1. 初始化密码
[root @node2 app]# mysqladmin  -uroot -p password '000000'

#2. 用户信息检索
#mysql5.7以前
       	sql_node1[(none)]> select user,password,host from mysql.user;

#mysql5.7
       	sql_node1[(none)]>select user,authentication_string,host from mysql.user;

2.2,yum源安装

1,重启mysqld服务

systemctl  restart mysqld
	
第一次启动时,会在日志文件中生成临时密码

通过查看配置文件(/etc/my.cnf),可以得到配置文件的位置:/var/log/mysqld.log

2,查看安装MySQL生成的默认登录密码

grep  'password'  /var/log/mysqld.log

image.png

3,登录mysql

1.mysql  -uroot -p’8,m%*KRkFSdM‘		8,m%*KRkFSdM为临时密码
2.mysql -uroot -p	会提示输入密码

4,修改登录密码

#首次使用必须修改密码,否则不能使用。

image.png

5,重启服务

systemctl  restart  mysqld

6,创建一个utf8字符集的数据库

image.png

7,查看数据库

image.png

8,授权

image.png

9,刷新

image.png

10,查看用户授权

image.png

11,开机自启

systemctl  enable  mysqld

3,关于5.7的密码策略

1,mysql5.7的密码策略要求:

a. 长度至少为8
b. 至少有一个特殊字符
c. 大小写字母
d. 数字

2,查看密码策略

image.png

validate_password_policy:密码安全策略,默认MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少各1个
validate_password_number_count :数字至少1个  
validate_password_special_char_count:特殊字符至少1个

image.png

3,修改密码策略

#临时修改
set global 
例如强度降低,长度降低
>set global validate_password_policy=0;
>set global validate_password_length=6;
#永久修改
修改配置文件my.cnf
例如强度降低,长度降低,在mysqld节点中添加:
validate_password_policy=0
validate_password_length=6
	
注意:修改配置文件需要重新启动mysqld

4,修改密码

方法一:
>alter user 'xxx'@'localhost' identified by '新密码';
方法二:
>set password for 'xxx'@'localhost'=password('新密码');

password_policy=0;

set global validate_password_length=6;




```shell
#永久修改
修改配置文件my.cnf
例如强度降低,长度降低,在mysqld节点中添加:
validate_password_policy=0
validate_password_length=6
	
注意:修改配置文件需要重新启动mysqld

4,修改密码

方法一:
>alter user 'xxx'@'localhost' identified by '新密码';
方法二:
>set password for 'xxx'@'localhost'=password('新密码');

相关推荐

  1. 第二 Redis介绍及安装

    2024-03-25 20:36:07       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 20:36:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 20:36:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 20:36:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 20:36:07       20 阅读

热门阅读

  1. 【Node.js】流

    2024-03-25 20:36:07       20 阅读
  2. 【如何解决Go包中循环依赖】

    2024-03-25 20:36:07       17 阅读
  3. Android基础面试题目汇总

    2024-03-25 20:36:07       17 阅读
  4. 2019南京大学计算机考研复试机试题-Stepping Numbers

    2024-03-25 20:36:07       15 阅读
  5. Nginx配置文件中Location指令的匹配优先级

    2024-03-25 20:36:07       17 阅读
  6. 【微服务设计】常见的DDD设计中的经验教训!

    2024-03-25 20:36:07       19 阅读
  7. 计算机网络原理之四种攻击

    2024-03-25 20:36:07       21 阅读