Linux上安装配置最新版MySQL8.0.19
文章目录
前言
Linux上安装MySQL有多种方式,它们的具体区别可查看我的另一篇博客:Linux中JDK的安装、卸载和配置详解,我的服务器装的是64位的CentOS 7操作系统,MySQL这里我只演示一种Linux通用的,也是我常用的一种安装方式–》mysql glibc 二进制软件包(文件后缀为 .tar.xz )
获取并上传安装包
官网下载:
https://dev.mysql.com/downloads/mysql/
选择自己Linux系统对应的版本,下载**TAR Archive版本(编译过的二级制版本,系统安装依赖库后就可以直接使用),另外两个分别是压缩的TAR存档,测试套件和未编译过的源码包**。PS:mysql的官网属于外网,下载会很慢也容易下载失败,下载不了的小伙伴可在我的公众号编程之外,回复Linux-mysql8 获取我已下载好的mysql安装包。
不用登录,直接点击下载:
下载好安装包之后,上传到自己的服务器,我使用的是Xftp
安装MySQL
安装前使用下面命令先查看,系统是否装有mysql
rpm -qa | grep mysql
rpm -qa | grep mariadb
系统预装的mariadb对我们装mysql是有影响的,但我都填坑了,PS:操作系统和我不一样的,下面的步骤或许会有其他问题
一、解压并解包
# 会保留原安装包,注意Jxvf的 J 为大写
tar Jxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
下面拓展另一种方式:先解压,再解包
(1)、解压
# 这个命令解压后,原压缩包会被删除
xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
(2)、解包
# 原安装包会保留
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
MySQL官方默认 mysql 是需要安装在:/usr/local/mysql 目录下的,懒得改mysql配置文件了,使用下面一个命令将解压解包后的mysql移动到 /usr/local 目录下,并重命名为mysql
# 执行后,原位置的mysql文件不存在
mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
想保留一份原位置的mysql,也可以使用下面命令复制一份到 local 目录下即可
cp -rv mysql-8.0.13-linux-glibc2.12-x86_64/ /usr/local/mysql
二、安装mysql依赖包
查看系统是否安装了mysql的依赖包 libaio,没安装有使用 yum -y install libaio 安装
# 先查看,没有再安装
rpm -q libaio
# 安装
yum -y install libaio
三、创建mysql用户和组
创建mysql用户和用户组
useradd -r -s /sbin/nologin mysql
四、初始化mysql
先去到mysql的bin目录下,再初始化
,使用上一步创建的mysql用户初始化,注意要保存初始化生成的密码
cd /usr/local/mysql/bin/
# 初始化,注意这里的./不能省略
./mysqld --initialize --user=mysql
将mysql服务的启动、关闭脚本(mysql.server
),复制到 /etc/init.d/
目录下,并将脚本重命名为mysqld
,方便启动和关闭mysql服务
# mysql的服务脚本 mysql.server 在 support-files 目录下,可以先去到那再复制也可以用全路径复制
cd /usr/local/mysql/support-files
# 复制并重命名脚本
cp mysql.server /etc/init.d/mysqld
注:若系统没有预装mariadb-libs,或使用下面命令卸载了mariadb-libs,则修改配置文件这一步可不用做,直接跳到第五步启动mysql服务即可
# 卸载mariadb-libs
yum remove mariadb-libs
由于系统预装的mariadb
干扰,下载还启动不了mysql服务,需要修改 /etc/my.cnf
配置文件,
执行vi /etc/my.cnf命令后按i
进入编辑状态,修改完成后按Esc
键退出编辑状态,:wq 退出并保存
# 编辑 my.cnf文件
vi /etc/my.cnf
修改前的my.cnf文件内容
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/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=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
修改后的my.cnf文件内容
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
[client]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
五、启动mysql服务
配置修改后就可以启动mysql服务了,看到如下界面则服务启动成功啦!有的小伙伴启动成功提示的是success!
# 启动 mysqld 服务
service mysqld start
六、更改密码
上一步启动mysql的服务后,去到mysql的bin目录下,即可进入mysql的客户端,然后再修改生成的密码,注意:这里需要用到上面第四部,初始化mysql时生成的默认密码登录客户端
下面将root用户的密码修改为 123456,下次登录就是使用该密码了,初始化生成的临时密码可以不用了
alter user 'root'@'localhost' identified by '123456';
好了,在Linux上安装MySQL到这里已经完成了,和我安装成功的小伙伴关注公众号编程之外吧🤣🤣下面的操作内容可选~
配置mysql环境变量
按上面的方法安装好mysql后,每次登陆,都需要去到mysql的bin目录下,部署项目时也非常不方便,下面配置mysql的全局环境变量,使在任何地方都可以访问到mysql并登陆。
# 编辑环境变量配置文件 profile
vi /etc/profile
在 profile 文件底部添加下面内容(本质:将bin目录的路径,添加到全局变量中),然后保存并退出(:wq),
注意一定不能删除profile文件中的其它内容
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
如下,验证环境变量配置成功,下载可在任意地方登陆mysql了
# 刷新profile文件,使修改内容生效
source /etc/profile
# 查看mysql版本
mysql -V
Linux拓展
查看mysql服务状态
service mysqld status
查找根目录下所有包含mysql的文件和文件夹
find / -name mysql
移除mariadb
yum remove mariadb-libs
创建一个用户和用户组–》mysql (也可以用其他名称)
useradd -s /sbin/nologin -M mysql
touch
# touch:创建文件
touch test.txt
cp
# 复制001.txt文件,并重命名为cp002.txt
cp 001.txt cp002.txt
# 将001.txt文件复制一份到testdir目录下
cp 001.txt testdir/
# 复制testdir2文件夹(包括他的子文件和子文件夹),到data目录下
cp -r testdir2 /export/data/
mv
# 将 redis-5.0.7 移动到 test2 目录下,并重命名为 redis
mv redis-5.0.7 /export/test2/redis
上面我们安装的mysql源文件是 .tar.xz 格式的,下面的命令用于 .tar.gz 格式的解压解包:
# 解压并解包,并指定解压到servers目录下
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /export/servers/
编程之外
需要安装包的小伙伴,记得在公众号回复 Linux-mysql8 ,认真对待每一篇文章!学习更多的编程知识,寻找编程之外的乐趣,欢迎小伙伴入坑公众号 编程之外哦😁😁
编程之外 |