一、版本说明
本文的版本号是5.7.30,5.6及以上版本的MySQL要求Linux系统虚拟内存不能小于1G,否则MySQL可能无法运行。
二、安装前的准备
2.1查看系统自带的Mariadb
rpm -qa|grep mariadb
安装mysql为什么需要卸载mariadb:
以前的Linux系统中数据库大部分是mysql,不过自从被sun收购之后,就没有集成在centos这些开源Linux系统中了,centos7 已经不支持mysql,内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。
2.2卸载系统自带的Mariadb
rpm -e --nodeps mariadb-libs-当前系统安装的版本
2.3确保系统已安装libaio
rpm -qa | grep libaio
一般Linux系统默认就已安装,除非被手动卸载了
三、基于压缩包安装(推荐)
3.1解压压缩包
前置准备(在根目录下创建softWare文件夹,并进入到softWare文件夹下):
①在根目录下创建softWare文件夹
mkdir /softWare
②进入到softWare文件夹下
cd /softWare
3.1.1将压缩包(mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz)下载到softWare文件夹下
①方法一:将准备好的文件上传上去(推荐)
②方法二:通过wget下载
wget命令如下:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
3.1.2解压
确保压缩包文件已上传成功:
解压命令如下:
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
3.1.3将解压后的文件转移到/usr/local路径下,并改名为mysql
命令如下:
mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
3.2修改配置
3.2.1创建数据存放目录
在/usr/local/mysql根目录下创建data文件夹,用于存在Mysql的数据
mkdir /usr/local/mysql/data
3.2.2查找MySQL的主配置文件 my.cnf
的位置
①进入到/usr/local/mysql/bin目录
cd /usr/local/mysql/bin
②查找Mysql的主配置文件路径
./mysql --help |grep 'my.cnf'
在Linux系统中,/etc/my.cnf
(注意是my.cnf
而不是my.conf
)是MySQL的主配置文件,它包含了数据库服务器运行所需的设置。这个文件可以包含各种配置指令,比如端口号、数据目录、日志文件位置、权限设置、性能优化参数等。
3.2.3编辑my.cnf文件
执行vi /etc/my.cnf,复制并粘贴如下配置:
[mysql]
# 设置MySQL客户端的默认字符集为UTF-8
default-character-set=utf8
[mysqld]
# MySQL服务器监听的端口号为3306
port=3306
# 设置MySQL服务器监听的Unix套接字文件路径为/tmp/mysql.sock。
# 这允许本地客户端通过套接字文件连接到MySQL服务器,而不是通过TCP/IP端口
socket=/tmp/mysql.sock
# 设置MySQL的安装根目录
basedir=/usr/local/mysql
# 设置MySQL数据库的数据存放目录
datadir=/usr/local/mysql/data
# 设置MySQL服务器允许的最大并发连接数为200。这个值可以根据服务器的性能和负载进行调整。
max_connections=200
# 设置mysql服务端字符集,默认为latin1。UTF8MB4是UTF-8的超集,支持更多的字符,包括表情符号。
character-set-server=UTF8MB4
# 设置MySQL服务器的默认存储引擎为InnoDB
default-storage-engine=INNODB
#设置MySQL用户的密码永不过期。默认情况下,MySQL会要求定期更改密码,设置为0表示禁用此功能。
default_password_lifetime=0
#设置MySQL服务器允许的最大数据包大小为16MB。
#这个值限制了单个SQL语句或数据包的大小,可以根据需要调整。
max_allowed_packet=16M
3.3创建用户与用户组
3.3.1创建mysql 用户组
groupadd mysql
3.3.2创建mysql用户
useradd -r -g mysql mysql
-
-r
:创建一个系统账户。系统账户通常用于系统服务和守护进程,而不是人类用户。 -
-g
:指定用户的初始用户组。在这个例子中,用户mysql
将被添加到mysql
组中。 -
mysql
:这是要创建的用户名。
3.3.3将 /usr/local/mysql
目录及其所有子目录和文件的所有者和组都更改为 mysql
用户和 mysql
组
chown -R mysql:mysql /usr/local/mysql
3.4初始化Mysql
3.4.1进入到/usr/local/mysql/bin目录下
cd /usr/local/mysql/bin
3.4.2执行初始化
./mysqld --initialize --user=mysql
注意,初始话完成后root用户的临时密码会打印在控制台
A temporary password is generated for root@localhost: 打印的密码
vop-hY,293ah为临时密码(根据自己控制台输出)
3.5启动Mysql
3.5.1进入/usr/local/mysql/support-files目录
/usr/local/mysql/support-files
3.5.2启动mysql服务
./mysql.server start
3.5.3查看启动进程信息
ps -ef|grep mysql
3.6修改密码
初次登录MySQL数据库需要重置密码才能继续后面的数据库操作
3.6.1进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin
3.6.2登录mysql
./mysql -u root -p
密码为之前控制台输出的临时密码
3.6.3修改密码
alter user 'root'@'localhost' identified by '你的密码';
-
alter user
:这是MySQL 5.7及以上版本中用于修改用户账户的命令。 -
'root'@'localhost'
:这是要修改的用户账户,其中'root'是用户名,'localhost'是主机名。 -
identified by '你的密码'
:这部分指定了新的密码。
以指定了新的密码为'123456'为例:
alter user 'root'@'localhost' identified by '123456';
然后重新登陆如下:
3.7允许远程连接(可选)——实际部署内网可访问即可
MySQL数据库默认不允许远程连接,可通过如下步骤允许远程连接:
3.7.1切换到mysql数据库
use mysql;
3.7.2更新MySQL数据库中的用户权限
update user set host = '%' where user = 'root';
将root
用户的host
字段设置为%
,这意味着允许root
用户从任何主机连接到数据库。
3.7.3刷新权限
FLUSH PRIVILEGES;
注意:如何需要对外连接,需要开通对应的端口
3.7.4远程连接可能出现的问题
远程连接MySQL,提示如下错误:
解决如下:
alter user 'root'@'%' identified with mysql_native_password by '123456';
- 这条语句明确指定了使用
mysql_native_password
插件来验证密码。 - 适用于需要从外部网络访问MySQL服务器的情况,确保使用传统的密码验证方式。
3.8设置开机自启(可选)
3.8.1将服务文件拷贝到 /etc/init.d下,并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
3.8.2赋予可执行权限
chmod +x /etc/init.d/mysqld
3.8.3添加服务
chkconfig --add mysqld
3.8.4显示服务列表
chkconfig --list
注:如果看到mysqld的服务,并且3,4,5都是on的话则成功
如果是off,则执行:
chkconfig --level 345 mysqld on
四、基于yum源安装(不推荐)
4.1下载yum源的RPM安装包
打开mysql官网:MySQL
4.1.1按如下步骤,找到yum源RPM安装包的下载地址
找到系统对应的版本,右击复制链接地址
本案复制到的例链接地址:https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
4.1.2下载RPM安装包
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
4.2把安装5.7的源打开, 关闭安装8.x的源(x会这新版本而更新)
4.2.1切换到yum源配置文件的路径下
cd /etc/yum.repos.d/
下载好RPM包后会出现以下三个仓库:
4.2.2修改仓库配置文件
vim mysql-community.repo
4.3安装mysql
yum -y install mysql-server
安装过程请检查版本是否正确,如果不正确,那么就是mysql-community.repo 仓库没有配置正确
4.4启动mysql
systemctl start mysqld
4.5查找临时密码
grep 'password' /var/log/mysqld.log
4.6修改密码
4.6.1进入mysql
mysql -u root -p
密码为临时密码
4.6.2修改密码失败
alter user 'root'@'localhost' identified by '你的密码';
-
alter user
:这是MySQL 5.7及以上版本中用于修改用户账户的命令。 -
'root'@'localhost'
:这是要修改的用户账户,其中'root'是用户名,'localhost'是主机名。 -
identified by '你的密码'
:这部分指定了新的密码。
以指定了新的密码为'123456'为例:
alter user 'root'@'localhost' identified by '123456';
4.6.3修改密码校验策略
①仅检查密码长度
set global validate_password_policy=0;
validate_password_policy
是MySQL中的一个系统变量,用于控制密码验证策略的严格程度:
-
0
或LOW
: 仅检查密码长度。 -
1
或MEDIUM
: 检查密码长度、数字、小写字母、大写字母和特殊字符。 -
2
或STRONG
: 在MEDIUM
的基础上,还检查字典文件。
②设置密码的最小长度
SET GLOBAL validate_password_length = 1;
validate_password_length
是MySQL中的一个系统变量,用于设置密码的最小长度。将其设置为1意味着允许密码长度为1个字符
③再次修改密码
alter user 'root'@'localhost' identified by '123456';
4.7远程连接
同3.7
4.8yum安装mysql的一些默认路径
4.8.1数据目录
MySQL的数据目录通常位于/var/lib/mysql
。这个目录包含了所有的数据库文件和表结构
4.8.2配置文件
MySQL的主配置文件通常是my.cnf
,它可能位于/etc/my.cnf
或/etc/mysql/my.cnf
。这个文件包含了MySQL的各种配置选项
4.8.3日志文件
MySQL的日志文件通常位于/var/log/mysqld.log
。这个文件记录了MySQL的运行日志,包括错误信息和启动信息
4.8.4可执行文件
MySQL的可执行文件通常位于/usr/bin
目录下,例如mysql
、mysqladmin
等
4.8.5初始化脚本
MySQL的初始化脚本通常位于/etc/init.d/mysqld
。这个脚本用于启动、停止和重启MySQL服务
以上路径是通过YUM安装的MySQL的一些默认路径,但具体的路径可能会因不同的Linux发行版和安装方式而有所差异。