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

相关推荐
叫我龙翔几秒前
【项目日记】仿mudou的高并发服务器 --- 实现缓冲区模块,通用类型Any模块,套接字模块
linux·运维·服务器·网络·c++
苹果酱056717 分钟前
springcloud-网关路由gateway
java·开发语言·spring boot·mysql·中间件
东阳马生架构18 分钟前
MySQL原理简介—2.InnoDB架构原理和执行流程
mysql
张彦峰ZYF21 分钟前
解读InnoDB数据库索引页与数据行的紧密关联
数据库·sql·mysql·postgresql·oracle
荼靡6031 小时前
shell(三)
linux·服务器·数据库
zym大哥大1 小时前
Linux的权限
linux·服务器
伴野星辰1 小时前
小乌龟TortoiseGit 安装和语言包选择
linux·运维·服务器
枫叶丹42 小时前
【在Linux世界中追寻伟大的One Piece】多线程(一)
java·linux·运维
残念ing2 小时前
【Linux】—简单实现一个shell(myshell)
linux·运维·服务器
山山而川粤2 小时前
废品买卖回收管理系统|Java|SSM|Vue| 前后端分离
java·开发语言·后端·学习·mysql