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

相关推荐
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Yaml44 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
追风林4 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
Hsu_kk6 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境6 小时前
第02章 MySQL环境搭建
数据库·mysql