Linux下安装mysql8.0(以tar.xz包安装--编译安装)

前言: 原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访!

Linux下安装mysql8.0(以tar.xz包安装--编译安装)https://myweb.myskillstree.cn/126.html

目录

一、下载对应自己glic版本的MySQL

二、从Windows将安装包导入Linux

三、安装MySQL

四、启动mysql(MySQL用户下)

五、连接mysql、修改密码

六、将MySQL添加到环境变量中

将MySQL命令添加到环境变量

将MySQL的启动等服务添加到环境变量


一、下载对应自己glic版本的MySQL

查看本系统的glibc版本

bash 复制代码
rpm -qa | grep glibc
如下图:我的Linux系统的glibc的版本是2.17

进入MySQL官网:https://www.mysql.com/

如下图找到适合自己glibc版本的MySQL安装包,比如我的系统是2.17,那我就下载2.17版本的

此时会弹出下载链接,选择要下载到的路径,开始下载

二、从Windows将安装包导入Linux

下载winscp软件,此软件可以作为ftp工具将安装包导入Linux

输入Linux的ip地址root用户名和密码

选择"登录"------Accept后即可连接到Linux系统中

在这里我们在/usr/local/下创建新的目录soft,并把符合系统glibc版本的MySQL的安装包复制到soft目录下

此时可以看到soft目录下已经有了MySQL安装包,关闭winscp,在Linux系统的/usr/local/soft/目录下查看是否存在安装包

可以看到此时,soft目录下已经存在MySQL的安装包了,接下来便可以开始安装MySQL

三、安装MySQL

1、rpm -qa | grep mariadb 查找mariadb的版本名称(和MySQL冲突,会导致MySQL的3306端口监听不到):如果存在文件,使用rpm -e --nodeps 安装包 删除

2、先将安装包进行解压:

注意:这里的文件是.xz文件,如果你下载的文件是**.tar.gz文件的话用 :tar -zxvf +文件命令

bash 复制代码
tar -Jxvf mysql-8.1.0-linux-glibc2.17-x86_64.tar.xz 

不带tar.xz后缀的文件就是我们解压后的安装包,我们将安装包重命名为mysql8

bash 复制代码
mv mysql-8.1.0-linux-glibc2.17-x86_64 mysql8

2、编译配置文件my.cnf(这个文件一般是默认存在的,不需要自己手动创建,mysql在初始化是会去寻找这个配置文件,如果没有有则是默认的系统配置)

在/etc文件夹下配置my.cnf文件,没有就创建

bash 复制代码
vim /etc/my.cnf

添加以下参数:

bash 复制代码
[mysqld]
# 设置3306端口
 port=3306 
#  socket=/tmp/mysql.sock

#  设置mysql的安装目录
  basedir=/usr/local/soft/mysql8
#   
#  设置mysql数据库的数据的存放目录
  datadir=/usr/local/soft/mysql8/data     
#  允许最大连接数/
   max_connections=10000

#  允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
   max_connect_errors=10
#      
#  服务端使用的字符集默认为UTF8
#  character-set-server=UTF8
#       
#  创建新表时将使用的默认存储引擎
   default-storage-engine=INNODB
     
#  默认使用"caching_sha2_password"插件认证

   default_authentication_plugin=caching_sha2_password  
#         
[mysql]
#  设置mysql客户端默认字符集
   default-character-set=utf8                
[client]
#  设置mysql客户端连接服务端时默认使用的端口
   port=3306
   default-character-set=utf8
   user=mysql

创建用户并初始化

在mysql的安装目录下新建文件data

bash 复制代码
cd /usr/local/soft/mysql8/
mkdir data

创建用户组并给用户组权限:

bash 复制代码
groupadd mysql
useradd -rg mysql mysql
chown -R mysql:mysql /usr/local/soft/mysql8/

此时ll查看data目录的属组为mysql,如下:

初始化mysql数据库

bash 复制代码
[mysql8目录下] su mysql
./bin/mysqld --initialize

此时会弹出mysql的临时密码,将密码记下来:

四、启动mysql(MySQL用户下)

bash 复制代码
cd support-files/
./mysql.server start
    #Starting MySQL SUCCESS!    //意思为成功启动MySQL
    #这里注意,如果不是在/usr/local/soft/mysql8下安装的mysql,需要在mysql.server文件中将所有路径变量都修改成当前安装目录才能正常启动

五、连接mysql、修改密码

bash 复制代码
exit
./bin/mysql -h 127.0.0.1 -u root -p

输入临时密码进入MySQL:

修改密码:

sql 复制代码
alter user 'root'@'localhost' identified by '123456';

此时,MySQL的密码就修改为了123456

此时我们再用修改后的密码进行验证,看是否可以使用修改后的密码登录MySQL

登录成功!!!

关机后再次登录如果报错111,进入 support-files/目录 输入:./mysql.server restart 重启mysql,返回上一级重新登录即可

六、将MySQL添加到环境变量中

通过编译安装的MySQL必须在support-files文件下执行命令才能进行开启、关闭重启等服务功能,如果想在linux任何目录下都可以进行这些功能就需要将其添加到环境变量中

将MySQL命令添加到环境变量

bash 复制代码
vim /etc/profile
末尾添加以下内容:
    PATH=$PATH:/usr/local/soft/mysql8/bin:/usr/local/soft/mysql8/bin
    export PATH
保存退出
source /etc/profile                # 重新加载环境变量配置脚本

将MySQL的启动等服务添加到环境变量

bash 复制代码
cp /usr/local/soft/mysql8/support-files/mysql.server /etc/init.d/mysql
#检查一下复制过去的文件中的basedir=  和datadir=   后的路径和原先是否一致,不一致需要修改一致   

此时就可在任意目录下对MySQL进行重启、关闭等功能,例如

bash 复制代码
service mysql restart            # 重启MySQL
service mysql start              # 开启MySQL
service mysql stop               # 暂停MySQL
service mysql reload             # 优雅重启MySQL

也可以在任意目录下使用mysql命令进入MySQL,例如

bash 复制代码
mysql -u root -p
相关推荐
m0_561359672 分钟前
用Python监控系统日志并发送警报
jvm·数据库·python
Dxy123931021613 分钟前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql
zhousenshan35 分钟前
springboot事务管理几种方式
数据库
Yana.nice1 小时前
openssl将证书从p7b转换为crt格式
java·linux
布局呆星1 小时前
SQLite数据库的介绍与使用
数据库·python
AI逐月1 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
2401_838472511 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
想逃离铁厂的老铁1 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
石头wang1 小时前
oracle jdbc 依赖以及对dbeaver的性能影响,如何选择oracle驱动, oracle jdbc 驱动
数据库·oracle
weixin_452159551 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python