mysql8安装

注:本教程适用于CentOS 7.9和CentOS 8

1.安装包获取

官网

image-20240307165426849

image-20240307165505286

image-20240307165517752

image-20240307165544082

image-20240307165611135

image-20240307165636692

image-20240307165659152

20240320121649.png

点击Nothanks,just start my download(不用了,直接开始下载)即可

2.解压,挑选文件推送至linux

挑了这几个

image-20240307174942987

3.安装

检查/tmp临时目录权限(一定要做)

1
chmod -R 777 /tmp

检查依赖

1
2
rpm -qa|grep libaio
rpm -qa|grep net-tools

如果运行了之后没有输出任何结果,说明没有安装这个工具

手动安装:

(查找云端库中有无此安装包)

1
yum search libaio

(安装)

1
yum install libaio

(net-tools安装流程与这个相同)

切换到刚才放安装包(选的那几个压缩包)的路径下

我的在/opt下,在终端中输入

1
cd /opt

就能切换到那个目录了(不切换不能进行后面的操作哦)

在终端中执行(一行一行执行!!!可以善用Tab键来帮忙补全)

1
2
3
4
5
6
7
rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
yum remove mysql-libs
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm

安装过程中报错:

image-20240307173056143

解决:

执行

1
yum remove mysql-libs

查看是否安装成功

1
mysql --version

4.初始化

在终端中执行

1
mysqld --initialize --user=mysql

去看密码(记得复制)

1
cat /var/log/mysqld.log

image-20240307183119880

查看服务状态

1
systemctl status mysqld

启动服务

1
systemctl start mysqld

查看服务是否是开机自启动状态(enabled表示开机能自启动)

1
systemctl list-unit-files |grep mysqld.service

修改服务为开机自启动状态

1
systemctl enable mysqld.service

5.远程连接

在虚拟机终端中:

1
mysql -uroot -p

输入刚才复制的密码,回车

修改密码(把new_password换成想要的密码)

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

注意,如果用的是CentOS8,不要执行上面这行指令,指令下面这行

1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

quit退出登录

终端中指令查看ip

1
ifconfig

依次在终端中执行以下指令以开放端口

1
2
3
fire-cmd --add-service=http --permaent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

注:第一句如果报错的话换成这句

1
firewall-cmd --add-service=http --permanent

查看已经开放的端口

1
firewall-cmd --list-all

在终端中登录mysql

1
mysql -uroot -p

依次执行以下语句(#后面的是注释,是给人看的,所以不要把注释也敲到终端里面去)

1
2
3
4
5
6
7
8
9
use mysql
update user set host='%' where user ='root';
#修改root账号的主机值,可以不修改数据库的访问权限直接支持远程访问

FLUSH PRIVILEGES;
#刷新权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
#授权访问所有数据库(有隔离数据库需求自行分配权限)

在主机的图形化界面管理工具中远程连接

image-20240320124727230

image-20240320124712881

(注意用数据库图形化管理工具远程连接的时候,用户名密码是数据库的,不是你操作系统的)

查看已经开放的端口

1
firewall-cmd --list-all

在终端中登录mysql

1
mysql -uroot -p

依次执行以下语句(#后面的是注释,是给人看的,所以不要把注释也敲到终端里面去)

1
2
3
4
5
6
7
use mysql
update user set host='%' where user ='root';
# 修改root账号的主机值,可以不修改数据库的访问权限直接支持远程访问
FLUSH PRIVILEGES;
#刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
#授权访问所有数据库(有隔离数据库需求自行分配权限)

在主机的图形化界面管理工具中远程连接

image-20240320124727230

image-20240320124712881

(注意用数据库图形化管理工具远程连接的时候,用户名密码是数据库的,不是你操作系统的)