一文玩转Linux安装MySQL5.7.36

Posted 程序员乌拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文玩转Linux安装MySQL5.7.36相关的知识,希望对你有一定的参考价值。


@TOC

一文玩转Linux安装mysql5.7.36

MySQL简介

MySQL 是最受欢迎的开源 SQL 数据库管理系统,由 Oracle Corporation 开发、分发和支持。

MySQL 网站 ( http://www.mysql.com/ ) 提供有关 MySQL 软件的最新信息。

MySQL特点

1、MySQL 是一个数据库管理系统。

2、MySQL 数据库是关系型的。

3、MySQL 软件是开源的。

4、MySQL 数据库服务器非常快速、可靠、可扩展且易于使用。

5、MySQL 服务器在客户端/服务器或嵌入式系统中工作。

MySQL历史

MySQL开始的目的是将 mSQL使用快速低级 (ISAM) 例程通过数据库系统连接到表。然而,经过一些测试,得出的结论mSQL 是不够快或不够灵活,无法满足需求。这为数据库带来了一个新的 SQL 接口,但 API 接口几乎与mSQL. 此 API 旨在使为使用而编写的第三方代码能够 mSQL轻松移植以与 MySQL 一起使用。

MySQL 以联合创始人 Monty Widenius 的女儿 My 命名。MySQL Dolphin(徽标)的名称是“ Sakila ” ,它是从“为海豚命名”竞赛 中用户建议的大量名称中选择的。获奖名称由来自非洲 Eswatini(原斯威士兰)的开源软件开发人员 Ambrose Twebaze 提交。根据 Ambrose 的说法,女性名字 Sakila 源于史瓦帝尼的当地语言 SiSwati。Sakila 也是坦桑尼亚阿鲁沙的一个小镇的名称,靠近安布罗斯的原籍国乌干达。

MySQL下载

如需下载MySQL各个版本,可通过MySQL官网下载地址进行选择


本教程安装mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz,接下来演示下载教程。

本教程安装包已上传至百度网盘,需要的小伙伴可自行提取安装包。

链接:https://pan.baidu.com/s/13JFOFE2wJKiDIwESrXFr5g
提取码:My80

MySQL安装

MySQL版本 Linux镜像
mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz CentOS-7-x86_64-Minimal-2009.iso

1、检查是否安装mariadb

# 检查
rpm -qa|grep mariadb

# rpm包安装方式卸载
# 查包名:
rpm -qa|grep -i mysql

#删除命令:
rpm -e –nodeps 包名

# yum安装方式下载
# 1.查看已安装的mysql
# 命令:
rpm -qa | grep -i mysql

# 2.卸载mysql
#命令:
yum remove mysql-community-server-5.6.36-2.el7.x86_64

#查看mysql的其它依赖:
rpm -qa | grep -i mysql

#卸载依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysql

2、上传文件并解压

#(因版本原因,可能需要使用不同的方式进行解压,如果版本为5.x.tar.gz,不需要如此,通过“tar -zxvf 包名 -C 安装路径名”)

#tar.xz文件如何解压?

#xz压缩文件方法或命令:
#xz -z 要压缩的文件

#如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.
#xz解压文件方法或命令
#xz -d 要解压的文件

#同样使用 -k 参数来保留被解压缩的文件。
#创建或解压tar.xz文件的方法
#习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。

#创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
#解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

#例子:这种文件其实是两层压缩,外层是.xz压缩方式,内层是.tar压缩方式。
#mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

#解压过程也分为两层:xz -d mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz,之后就会出现mysql-8.0.18-linux-glibc2.12-x86_64.tar文件

#然后tar xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar即可完成解压.
# 首先通过 xz -d 进行解压
xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

# 可以使用tar xf 解压
tar -xf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz -C /opt/module
========================================================================
# 解压mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /opt/module/

3、修改mysql文件名

# 通过mv命令修改解压文件名
mv mysql-5.7.36-linux-glibc2.12-x86_64/ mysql

4、删除etc目录下的my.cnf

#  删除etc目录下的my.cnf(存在的话)
cd /etc
rm -rf my.cnf

5、配置my.cnf文件

# 编辑文件,
vim /etc/my.cnf
[client]
#character-set-server=utf8
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-grant-tables
#设置3306端口
port=3306
socket=/var/lib/mysql/mysql.sock
#设置mysql的安装目录
basedir=/opt/module/mysql
#设置mysql数据库的数据的存放目录
datadir=/opt/module/mysql/data
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
user=root
[mysqld_safe]
pid-file=/opt/module/mysql/data/mysql.pid

# 配置以上参数即可,根据自身需要进行配置
========================================================================
# 客户端设置,即客户端默认的连接参数
[client] 

# 默认连接端口
port = 3306 

# 用于本地连接的socket套接字,mysqld守护进程生成了这个文件
socket = /opt/module/mysql/tmp/mysql.sock 

# 服务端基本设置
[mysqld] 

# 基础设置
# Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1 

# MySQL监听端口
port = 3306 

 # MySQL安装根目录
basedir = /opt/module/mysql

 # MySQL数据文件所在位置
datadir =/opt/module/mysql/data

# 临时目录,比如load data infile会用到
tmpdir =/opt/module/mysql/tmp 

# 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
socket = /opt/module/mysql/tmp/mysql.sock 

# pid文件所在目录
pid-file = /opt/module/mysql/log/mysql.pid 

#skip_name_resolve = 1 # 只能用IP地址检查客户端的登录,不用主机名
# 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4 

# 事务隔离级别,默认为可重复读,MySQL默认可重复读级别
transaction_isolation = READ-COMMITTED 

# 数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci 

# 设置client连接mysql时的字符集,防止乱码
init_connect=SET NAMES utf8mb4 

# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1 

default_authentication_plugin=mysql_native_password
# 最大连接数
max_connections = 400 

# 最大错误连接数
max_connect_errors = 1000 

 # TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

# SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M 

# MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
interactive_timeout = 1800 

# MySQL默认的wait_timeout值为8个小时, interactive_timeout参数需要同时配置才能生效
wait_timeout = 1800 

# 内部内存临时表的最大值 ,设置成128M;比如大数据量的group by ,order by时可能用到临时表;
# 超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 16M 

6、创建文件夹

#创建mysql目录并且给root(创建的mysql用户)用户赋权socket=/var/lib/mysql/mysql.sock
mkdir /var/lib/mysql

# root仅仅做演示,本教程未创建mysql用户
chown -R root:root /var/lib/mysql

7、安装和初始化数据库

# 进入mysql解压目录
cd /opt/module/mysql

# 初始化数据库
./bin/mysqld --user=root  --basedir=/opt/module/mysql --datadir=/opt/module/mysql/data/ --initialize

初始密码:

xIstL)wGn4iq

9、修改data文件为用户所有

# root用户的无需此操作,不是root用户则需要进行更改
chown -R root:root data

10、 授权my.cnf

chown 777 /etc/my.cnf

11、配置mysql服务

# 复制mysql文件到/etc/init.d/mysqld
cp /opt/module/mysql/support-files/mysql.server /etc/init.d/mysqld

12、赋予执行权限

# 赋予执行权限
chmod +x /etc/init.d/mysqld

13、添加至系统服务

添加到系统服务(注意当前路径应该在mysql8.0,即support-files的根目录)

 # 添加服务
 chkconfig --add /etc/init.d/mysqld
./bin/mysqld_safe --user=root &

14、检查服务是否生效

chkconfig  --list mysqld

15、配置全局变量

编辑 / etc/profile 文件

# 编辑配置文件
vim /etc/profile

# 配置MYSQL_HOME
MYSQL_HOME=/opt/module/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH 

16、使环境变量生效

source /etc/profile

17、重启mysql服务

service mysql start

mysql无法启动,显示PID not found!

通过ps -ef 进行查看,然后使用 kill -9 进程号,停止进程

18、重启mysql无法,登录mysql

mysql -uroot -p密码 # 输入"初始化数据库"操作时的"临时密码"

# 通过另一种方式显示默认密码, 
cat /root/.mysql_secret

19、修改密码

SET PASSWORD = PASSWORD(123456);

20、添加远程访问

use mysql;
update user set host="%" where user ="root" ;
flush privileges ;
select host, user from user;

21、通过远程工具navicat连接

--创建dsjprs数据库,通过远程工具连接
create database dsjprs;

22、查看dsjprs数据库

23、mysql修改密码

# 查看mysql密码配置规则 
SHOW VARIABLES LIKE validate_password%; 

# 必须修改两个全局参数:
# 1、修改validate_password_policy参数的值
set global validate_password_policy=0;

# 2、配置判断密码的标准就基于密码的长度了 
#validate_password_length参数默认为8,它有最小值的限制,最小值为4,由于要设密码为123456,长度为6,
set global validate_password_length=6;

# 密码策略参数
validate_password_length #固定密码的总长度;
validate_password_dictionary_file #指定密码验证的文件路径;
validate_password_mixed_case_count #整个密码中至少要包含大/小写字母的总个数;
validate_password_number_count #整个密码中至少要包含阿拉伯数字的个数;
validate_password_policy #指定密码的强度验证等级,默认为 MEDIUM;
validate_password_policy 的取值:
LOW:#只验证长度;
MEDIUM:#验证长度、数字、大小写、特殊字符;
STRONG:#验证长度、数字、大小写、特殊字符、字典文件;
validate_password_special_char_count #整个密码中至少要包含特殊字符的个数
========================================================================
validate_password_dictionary_file   #插件用于验证密码强度的字典文件路径。
validate_password_length            #密码最小长度,参数默认为8,它有最小值的限制,最小值为4
validate_password_mixed_case_count # 密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count     # 密码至少要包含的数字个数。
validate_password_policy            #密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:
Policy                 Tests Performed                                                                                                        
0 or LOW               Length                                                                                                                      
1 or MEDIUM            Length; numeric, lowercase/uppercase, and special characters                             
2 or STRONG            Length; numeric, lowercase/uppercase, and special characters; dictionary file      
#默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
validate_password_special_char_count #密码至少要包含的特殊字符数。

# mysql密码修改
SET PASSWORD FOR root@localhost = PASSWORD(123456);  

如在文中有所收获,请点赞

以上是关于一文玩转Linux安装MySQL5.7.36的主要内容,如果未能解决你的问题,请参考以下文章

一文玩转Linux(NAT)网络配置(保姆级别教程)

源码编译并二进制安装MySQL5.7 3 二进制安装mariadb10.4

玩转Rabbitmq系列02:Rabbitmq保姆级安装教程与基本消息模型实战

[Linux] PHP程序员玩转Linux系列-备份还原MySQL

一文彻底教会你玩转java动态代理

一文彻底教会你玩转java动态代理

(c)2006-2024 SYSTEM All Rights Reserved IT常识