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

相关推荐
是小崔啊3 小时前
事务03之MVCC机制
数据库·mysql·事务·
涛ing3 小时前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__3 小时前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚3 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式
深度Linux9 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
fajianchen9 小时前
MySQL 索引存储结构
数据库·mysql
xianwu54311 小时前
反向代理模块jmh
开发语言·网络·数据库·c++·mysql
geovindu11 小时前
neo4j-community-5.26.0 create new database
数据库·mysql·neo4j
MyY_DO12 小时前
maven mysql jdk nvm node npm 环境安装
java·mysql·maven
chian-ocean12 小时前
从理论到实践:Linux 进程替换与 exec 系列函数
linux·运维·服务器