Centos7安装解压版Mysql8

注意:我们安装的是最小版。个人学习啥的完全够用了

今天带来详细的Centos7安装解压版Mysql8,这里尽可能的详细。这样做,自己也会有不错的收获。

1.解压版安装

1.0.1:下载Mysq Minimal 版本:请点击我

如图:

下载好了之后会有一个 mysql-8.0.19-linux-x86_64-minimal.tar.xz 文件

1.0.2:将下载好的 mysql-8.0.19-linux-x86_64-minimal.tar.xz 压缩文件上传到自己服务器的 /usr/local/ 文件夹下面

1.0.3:检查服务器是否已经安装mysql或者mariadb,有可能服务器自带了mysql或者mariadb服务器,但是后来mysql收费了,很有可能会自带mariadb服务器。

检查是否存在mysql或者mariadb
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果存在,则卸载
rpm -e -nodeps mysql mariadb

删除了包之后,查看是否有残余的文件夹
find / -name mysql 
find / -name mariadb
如果存在,则删除
rm -rf xxxx xxx xxx
(xxx是文件地址,可以输入多个,直接从find / -name mysql 搜索出来的复制粘贴即可)

1.0.4:解压压缩文件

注意:J是大写
tar -xvJf mysql-8.0.19-linux-x86_64-minimal.tar.xz

1.0.5:删除我们压缩包,且把解压之后的文件改名为mysql

删除掉压缩包
rm -rf mysql-8.0.19-linux-x86_64-minimal.tar.xz 

改名为mysql 这样我们的mysql完整地址为:/usr/local/mysql
mv mysql-8.0.19-linux-x86_64-minimal/ mysql

1.0.6:创建一个文件夹,保存我们的数据文件等信息

-p检查是否存在,不存在则创建,如果不指定,创建多级文件夹会报错
mkdir -p  /data/mysql/data

1.0.7:检查是否存在mysql用户和mysql组

查看组
cat /etc/group | grep mysql
查看用户
cat /etc/passwd | grep mysql
用户和组信息等都存在/etc文件夹下面,如果我们的用户和组都不存在,则创建组和用户
1.创建组
groupadd mysql
2.创建mysql用户
useradd -s /sbin/nologin -r -g mysql mysql 
-s:指定用户登入后所使用的shell。
-r:系统级用户
-g:所属分组为mysql

我们在这里创建了一个mysql组和mysql用户,用户是系统级别的,所属mysql分组。且有shell

如果想详细了解mysql的用户和组等信息请点击我:Linux用户和组的概念

1.0.8:然后把我们的数据文件,和mysql的解压文件分别指定权限给mysql组和角色

给mysql组
chgrp -R mysql mysql/
给mysql用户
chown -R mysql mysql/
注意,当前是在/data/文件夹下面,意思就是说我们把mysql文件夹及其下属文件夹权限都给了mysql组和mysql角色

1.0.9:当我们的权限等都分配好了,就可以初始化mysql了,首先我们进入到我们的mysql目录,即:/usr/local/mysql

初始化mysql:注意是mysqld,不是mysql,basedir为我们的mysql解压文件夹,datadir为我们创建的保存数据的文件夹,也就是第6步创建的文件夹(注意,初始化只需要执行一次。再次执行则会报错)
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/data/

如下图:

注意,root@localhost后面的就是初始密码,我这里的是::DNm(Jl69j-N

如果看到的页面不是这样那就表示出错了。另外如果初始密码忘记了,怎么办,我们只需要把我们初始化的data文件中的内容删除,重新进行初始化即可,如:

删除掉我们data文件夹中的内容(表示删除所有
rm -rf /data/mysql/data/*
然后再次执行初始化:
./usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

1.1.0:在etc下面创建我们的配置文件和运行参数文件

配置文件
touch /etc/my.cnf
运行参数文件
mkdir /etc/my.cnf.d 

1.1.1:编辑我们的mysql配置文件my.cnf

vi /etc/my.cnf

输入以下内容:
-------------------分割线-----------------
[mysqld]

# 设置mysql的安装目录
basedir=/usr/local/mysql 
# 设置mysql的数据文件
datadir=/data/mysql/data
# 套接字保存地址 当服务器启动的时候自动创建的
socket=/data/mysql/mysql.sock

# 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=/data/log/mysql-log/error.log
# 程序启动的pid文件
pid-file=/data/mysql/mysql.pid

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

按下esc后输入:wq 即可

1.1.2:到这个时候我们就可以启动一下服务,试试看了

首先去到/usr/local目录下,因为这样直接输入mysql之后就可以又提示了
启动mysql服务
mysql/support-files/mysql.server start

对的,报错了,还记得我们在my.cnf中指定了异常日志文件 /data/log/mysql-log/error.log,但是我们系统还没有这个文件的,所以我们需要创建该文件,并且赋予权限为mysql角色。

13.创建日志文件,并赋权限mysql。

创建文件
mkdir -p /data/log/mysql-log
touch /data/log/mysql-log/error.log
渠道data目录下,赋予权限
chown -R mysql log/
chgrp -R mysql log/

现在我们有了日志文件,我们再次执行/usr/local/mysql/support-files/mysql.server start启动mysql服务。

结果如下图:

可以看到,我们的mysql已经启动成功了。到这里我们的mysql安装就完成了。

但是如果想做到service mysqld start 还是不行,想达到该效果我们还需要将mysql添加到系统服务

2.将mysql添加到系统服务

2.0.1:编辑我们刚的启动文件,mysql.server,添加我们的安装地址和文件地址

注:当前在/目录下
vi /usr/local/mysql/support-files/mysql.server

找到如下内容并且修改:
basedir=
datadir=

注意:这里的basedir和datadir就是我们的安装地址和创建的文件保存地址。

2.0.2:复制启动文件到etc/init.d文件下,并赋予权限

注:复制启动文件过去
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
注:755权限的意思大致为:所属角色可读可写可执行,同组其他成员以及其他用户组可读可执行。

2.0.3:添加到系统服务,并设置为打开状态

chkconfig --add mysqld
chkconfig mysqld on

ok到了这里,那么我们的mysql就添加到系统服务中了,就可以使用service mysqld start 进行启动了。

虽然添加到了系统服务,也安装成功了,但是还是不可以使用,我们还需要设置一下自己的密码,以及允许外界访问等,接下来我们慢慢的一步步实现。

3.MySql服务设置

3.0.1:设置自己的密码,MySql密码策略必须大小写加上特舒符等,简单的123456就不行。

首先使用我们安装的时候的初始密码,进行登录mysql,然后进行修改密码。

我们去到了mysql安装目录 使用使用 ./bin/mysql -u root -p 进行登录,输入密码之后发现报错了。其实错误很简单,我们在my.cnf中写的stock文件地址为:/data/mysql/mysql.stock 当mysql服务启动之后那么mysql.stock文件就会创建在 /data/mysql/目录下面,但是我们客户端连接需要的文件夹地址为 /data/mysql/data/mysql.stock,所以会报错。

解决办法:

1:修改my.cnf中的地址,改为 /data/mysql/data/mysql.stock

2:创建软连接

我们这里使用第二种,创建软连接

ln -s /data/mysql/mysql.sock /data/mysql/data/mysql.sock

ok,现在重新输入./bin/mysql -u root -p 以及自己的初始密码之后就可以登录了。

然后开始正式修改密码。

注:新密码必须要大小写加上数字特殊符 这里的是MyNewPass4!
注:到这这里,我们可以使用 quit 退出mysql 然后继续使用./bin/mysql -u root -p进行登录验证密码是否修改成功
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

3.0.2:允许除本本机外的客户端访问。并且修改密码策略,是navicat可以访问。

mysql -u root -p
use mysql;
update user set host='%' where user='root';
----------分隔符----------
注:不要使用改方法修改密码格式支持navicat,因为会导致登陆不上,可以直接使用navicat进行连接,无需修改
update user set plugin='mysql_native_password' where user='root';
----------分隔符----------
FLUSH PRIVILEGES;
注:这样修改了 就可以在除了本机之外的所有客户端都可以访问。另外:FLUSH PRIVILEGES 非常重要。如果不写,可能不会生效。
那么现在就可以去退出mysql并且重启。使用其他客户端的navicat连接访问了。

最后可以把MySql设置为开机自动启动。

4.忘记密码处理

4.0.1:在my.cnf配置文件添加skip-grant-tables,跳过验证直接进入mysql

4.0.2:修改密码,并且刷新权限,退出后注释掉配置文件的 skip-grant-tables

好了。到这里就基本上mysql的安装就彻底完成了。谢谢大家的支持。

发布了25 篇原创文章 · 获赞 9 · 访问量 3036

猜你喜欢

转载自blog.csdn.net/qq_40053836/article/details/104113347