本文已参与「新人创作礼」活动,一起开启掘金创作之路
引言
本文记录了如何在云服务器(Centos)上安装MySQL 8.0.29,并通过本地navicate进行访问。安装过程踩了很多坑,耗时近一天,写这个教程希望能帮助大家少踩坑。
一、查看是否安装过MySQL
-
如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql -
检查mysql service:
systemctl status mysqld.service
如下图:
我之前已经安装过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
查看用户
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服务器版本以及系统架构,选择对应版本下载
我这里下载的是底部的 tar.gz压缩文件,我的服务器是centos 7
四、安装MySQL
1.将下载的文件上传到服务器
我这里用mac自带的文件传送工具
put 你的文件所在mac电脑的位置 传输到linux系统文件的位置
2.安装前,检查依赖
rpm -qa|grep libaio
没有的话直接yum安装
yum install libaio
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
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连接
启动失败
如果/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