【Linux 安装MySQL 8.0 教程】

提示:Centos 7.9 安装mysql数据库,这里采用压缩版。



一、卸载mariadb

如果Linux中安装了mariadb数据库,先卸载掉,因为CentOS 7 内部集成了mariadb,mariadb数据库是mysql的分支,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。

1、检查Linux是否安装了mariadb数据库
yum list installed | grep mariadb
2、卸载mariadb数据库
yum -y remove mariadb*
yum list installed | grep mariadb   -- 再次检查是否卸载干净

二、卸载旧mysql库

1、查找旧mysql库
rpm -qa | grep -i mysql

无结果,说明未安装mysql或已经卸载彻底,直接安装mysql即可,否则需要删除旧mysql 库。

2、卸载旧mysql库,查找旧mysql的目录、删除旧mysql的文件和库 。
find / -name mysql      -- 查找mysql文件
rm -rf mysql*           -- 删除mysql文件
rm -rf /etc/my.cnf      -- 删除my.cnf文件

三、安装配置mysql库

1、创建mysql文件,将mysql库安装在指定路径下
cd /usr/local  -- 一般默认安装在这个路径下
mkdir mysql
2、下载mysql安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
https://dev.mysql.com/downloads/mysql/   -- mysql下载地址
rpm -qa | grep glibc  -- 查看自己操作系统的glibc版本

在这里插入图片描述

这里可以根据自己的需要和操作系统选择,注意自己操作系统的glibc版本和mysql的glibc版本一致。

3、解压重命名mysql
tar xvJf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz   -- 解压压缩包
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql-8.0      -- 重命名
rm -rf mysql-8.0.30-linux-glibc2.12-x86_64            -- 删除压缩包
4、创建用户组以及用户和密码
groupadd mysql
useradd -g mysql mysql

为什么要创建mysql分组: 我们在编译安装的时候创建一个mysql组和一个mysql用户,并把datadir和安装目录属主改为mysql,在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即便mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全 。

5、授权用户
chown -R mysql.mysql /usr/local/mysql/mysql-8.0
6、切换到bin目录下,初始化基础信息得到临时密码
cd bin
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize
7、编辑配置文件my.cnf
vi /etc/my.cnf

如果没有 my.cnf 文件就创建一个。

touch /etc/my.cnf 

my.cnf配置文件内容如下:

[mysql]
#MySQL 提示符配置
 
#用户名@主机名+数据库名
#prompt="\\u@\\h [\\d]>"
 
#用户名@主机名+mysql版本号+数据库名
prompt=\\u@\\h \\v [\\d]>\\_
 
#用户名@主机名+当前时间+mysql版本号+数据库名
#prompt="(\\u@\\h) \\R:\\m:\\s \\v [\\d] \n>"
 
[mysqld]
#mysql安装根目录
basedir = /usr/local/mysql/mysql-8.0/
 
#mysql数据文件所在位置
datadir = /usr/local/mysql/mysql-8.0/data/
 
#设置socke文件所在目录
socket = /tmp/mysql.sock
 
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
 
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
 
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

这里datadir和basedir按照自己需求自己创建。

在这里插入图片描述

8、切换到mysql-8.0目录下,添加mysqld服务到系统
cd /usr/local/mysql/mysql-8.0
cp -a ./support-files/mysql.server /etc/init.d/mysql
9、授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
10、启动mysql
service mysql start
11、查看启动状态
service mysql status
12、将mysql命令添加到系统指令
ln -s /usr/local/mysql/mysql-8.0/bin/mysql /usr/bin

实现在任何目录下执行 mysql -uroot -p 就可以进行登录。

13、登录mysql,密码使用之前随机生成的密码
mysql -uroot -p
14、修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
15、执行 flush privileges 使密码生效
flush privileges;   -- 刷新配置文件
16、选择mysql数据库
use mysql;
17、修改远程连接并生效,%表示开启远程权限
update user set host='%' where user='root';
flush privileges; -- 刷新配置文件
18、退出MySQL:\q ,查看mysql是否开机启动
chkconfig --list

如果 mysql服务的 第3、4、5项都是开着的,则已经开启了开机启动,反之则没有。
如果没有,可以用命令设置开机自启动。

systemctl enable mysqld.service
chkconfig --list  -- 再次查看是否设置开机自启

四、Linux虚拟机防火墙开放端口号3306,实现MySQL远程连接

1.查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
2、如果是no,表示关闭,打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 
3、防火墙重载
firewall-cmd --reload
4、再次查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp

yes,说明端口已经打开,去navicat测试连接,输入ip和root账户密码,即可成功!

五、登录MySQL

执行下面命令,输入密码“123456”并确认:

mysql -uroot -p

或者执行下面命令一键登录:

mysql -uroot -hlocalhost -p123456

注:-p后跟密码


总结

这里感谢原作者技术分享,这里仅作为记录和学习使用,附上原文链接。
原文链接:https://blog.csdn.net/m0_62808124/article/details/126436925

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值