Linux下安装MySQL8.0

一、安装

1.下载安装包

先创建一个mysql目录,在将压缩包下载到此

shell 复制代码
# 下载tar包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

等待下载成功

2.解压mysql8.0安装包

shell 复制代码
tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

查看版本

mysql --version

3.重命名解压出来的文件夹

这里改成mysql-8.0

bash 复制代码
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0

在/mysql-8.0文件夹下创建data文件夹 存储文件

bash 复制代码
mkdir data

4.分别创建用户组以及用户和密码

(如果提示已存在说明之前有创建过了)

bash 复制代码
groupadd mysql
useradd -g mysql mysql

授权刚刚新建的用户

bash 复制代码
chown -R mysql.mysql /opt/mysql/mysql-8.0
chmod 750 /opt/mysql/mysql-8.0/data -R

5.始化数据库

shell 复制代码
bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-8.0 --datadir=/opt/mysql/mysql-8.0/data

注:运行指令后将会出现如下输出,记住临时密码,每次运行上述指令生成的临时密码都不一样,我这里是:7Jl44eCeJ!.u

可能会出现的问题:

解决方法:

shell 复制代码
# 检查库是否安装
rpm -qa|grep libaio   
# 安装库
yum install  libaio-devel.x86_64

6.编辑配置文件my.cnf

shell 复制代码
vim /etc/my.cnf
shell 复制代码
[mysqld]
 basedir=/usr/local/mysql8
 datadir=/usr/local/mysql8/data
 socket=/tmp/mysql.sock
 character-set-server=utf8
 default_authentication_plugin=mysql_native_password
 port=3306

7.创建MySQL服务

添加Mysql到系统服务(当前目录应为:/usr/local/mysql8)

shell 复制代码
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

检查服务是否生效

shell 复制代码
chkconfig --list mysql

二、启动服务调整配置

1.启动服务

启动服务

shell 复制代码
service mysql start

这里可能出现的问题:

解决办法:

shell 复制代码
mkdir /var/log/mariadb     
touch /var/log/mariadb/mariadb.log

# mysql 用户和用户对目录进行授权
chown -R mysql:mysql /var/log/mariadb/

# 再次启动mysql服务,每次开机后,要手动启动一下
/opt/mysql/mysql-8.0/support-files/mysql.server start

查看状态

shell 复制代码
service mysql status

2.修改密码

登录mysql可能会出现如下错误

解决办法:

shell 复制代码
ln -s /opt/mysql/mysql-8.0/bin/mysql /usr/bin

登录mysql

shell 复制代码
mysql -uroot -p

输入或粘贴之前记录的临时密码并回车:7Jl44eCeJ!.u

修改密码

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# 例如
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '654321';

3.添加远程登录配置

sql 复制代码
create user root@'%' identified by '新密码';
grant all privileges on *.* to root@'%' with grant option;

# 例如
create user root@'%' identified by '654321';
grant all privileges on *.* to root@'%' with grant option;

root表示想要被连接的数据库的用户名

其中"%"表示允许所有机器能访问root用户

刷新权限

sql 复制代码
flush privileges;

查看设置结果

sql 复制代码
use mysql;
select host,user,plugin,authentication_string from user;

4.开放防火墙3306端口

到这里mysql已经可以本地连接上了,但是要用图形化界面远程连接,还需要开发防火墙的3306端口才行

--permanent代表永久生效,否则重启linux后则需要再次开启

firewall-cmd --add-port=3306/tcp --permanent

firewall-cmd --reload

查看防火墙端口开放状态

firewall-cmd --list-all

自此在linux系统上安装mysql8已经完成,并且可以使用图形化界面远程连接

5.添加全局环境变量

编辑 / etc/profile 文件

shell 复制代码
vi /etc/profile

在文件底部添加,保存退出

shell 复制代码
export PATH=$PATH:/opt/mysql/mysql-8.0/bin:/opt/mysql/mysql-8.0/lib
export PATH

刷新配置

shell 复制代码
source /etc/profile

参考:

Linux下安装MySQL8.0的详细步骤(解压tar.xz安装包方式安装)

Linux安装MySQL8

相关推荐
GeW43 分钟前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by209991 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
cq林志炫2 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
无人生还别怕3 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
企鹅侠客3 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源4 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
第404号工位4 小时前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构
就像楞次定律4 小时前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(1)
linux·后端
米优4 小时前
linux下获取崩溃程序的core文件
linux·运维·服务器
qeen875 小时前
【Linux】动静态库的制作使用及ELF文件的宏观理解
linux·运维·库