Centos 7.6 安装MySQL 8.0.29 & 远程访问

1,051 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

引言

本文记录了如何在云服务器(Centos)上安装MySQL 8.0.29,并通过本地navicate进行访问。安装过程踩了很多坑,耗时近一天,写这个教程希望能帮助大家少踩坑。

一、查看是否安装过MySQL

  • 如果你是用rpm安装, 检查一下RPM PACKAGE:

    rpm -qa | grep -i mysql

  • 检查mysql service:

    systemctl status mysqld.service

如下图:

image.png

我之前已经安装过mysql5.5了,现在我想更新成mysql8。

二、MySQL的卸载

关闭 mysql 服务

systemctl stop mysqld.service

查看当前 mysql 安装状况

rpm -qa | grep -i mysql 或者 yum list installed | grep mysql

卸载上述命令查询出的已安装程序

yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

删除 mysql 相关文件

-查找相关文件

find / -name mysql

-删除上述命令查找出的相关文件

rm -rf xxx

删除 etc路径下的my.cnf、init.d/mysqld

rm -rf /etc/my.cnf

image.png

image.png

查看用户

more /etc/passwd | grep mysql

删除用户

userdel mysql

卸载mariadb,按Y确认。

yum remove mariadb-libs.x86_64

三、下载MySQL指定版本

1. 下载地址

官网:https://www.mysql.com

2. 打开官网,点击 DOWNLOADS

然后,点击 MySQL Community(GPL) Downloads

3.点击 MySQL Community Server

4.查看linux服务器版本以及系统架构,选择对应版本下载

image.png

image.png 我这里下载的是底部的 tar.gz压缩文件,我的服务器是centos 7

四、安装MySQL

1.将下载的文件上传到服务器

我这里用mac自带的文件传送工具

put 你的文件所在mac电脑的位置 传输到linux系统文件的位置

image.png

2.安装前,检查依赖

rpm -qa|grep libaio

没有的话直接yum安装

yum install libaio

image.png

3.解压mysql安装包:

-C 参数后面可以指定解压位置,解压并重命名

tar -zxvf mysql-8.0.29-el7-x86_64.tar.gz -C /opt/

cd /opt

mv mysql-8.0.29-el7-x86_64/ mysql

4.在mysql根目录下创建data目录,存放数据

mkdir data

5.创建mysql用户组和mysql用户

groupadd mysql

useradd -g mysql mysql

6.改变mysql目录权限

chown -R mysql:mysql /opt/mysql/

7.初始化数据库

bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --lower-case-table-names=1

image.png

8.配置mysql

在mysql/support-files创建文件my-default.cnf

cd /opt/mysql/support-files/

touch my-default.cnf

复制配置文件到/etc/my.cnf

cp -a ./my-default.cnf /etc/my.cnf

编辑my.cnf

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
user=mysql:
socket=/tmp/mysql.sock
basedir=/opt/mysql
datadir=/opt/mysql/data
lower_case_table_names = 1

9.配置环境变量

编辑 / etc/profile 文件

[root@xxx mysql]# vim /etc/profile

#配置mysql环境变量
PATH=/opt/mysql/bin:/opt/mysql/lib:$PATH
export PATH

#让其生效
[root@xxx mysql]# source /etc/profile
#看环境变量是否生效
[root@xxx mysql]# echo $PATH
/opt/mysql/bin:/opt/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

五、启动mysql,修改密码,配置远程登录

systemctl start mysqld

如果启动不成功,Failed to start mysqld.service: Unit not found. 应该是/etc/init.d/下面没有mysqld,若遇到此坑请看文章底部解决办法

成功后 登录,输入初始密码:

mysql -uroot -p

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root1234';

设置远程登录

update user set host = '%' where user ='root';

刷新:

flush privileges;

开放3306端口

firewall-cmd --permanent --zone=public --add-port=3306/tcp

重新加载防火墙

firewall-cmd --reload

查看是否开放了3306

firewall-cmd --list-all

六、使用navicate连接

image.png

启动失败

如果/etc/init.d/下面没有mysqld的话,将mysql的mysql.server这个文件替换进去即可

find ./* -name mysql.server

cp  /opt/mysql/support-files/mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start