CentOS安装MySql
本次是CentOS8.1.1911安装Mysql8
卸载MariaDB
MariaDB是CentOS 8 默认自带,避免冲突
查看是否已安装
rpm -qa | grep mariadb如果没有任何输出,说明系统未安装 MariaDB
如果有输出结果,例如mariadb-server-10.5.9-1.el7.x86_64,就要进行删除
sudo dnf remove mariadb* -y最后输出Complete!即删除成功
切换vault源
先备份原来的源
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/切换阿里vault源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo \
https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo清理缓存并重新生成
sudo dnf clean all
sudo dnf makecache如果看到类似下面输出,说明源已经恢复正常:
Metadata cache created.如果不切换源可能会报以下错误
download metadata for repo 'AppStream'
Error: Failed to download metadata for repo 'AppStream'因为而是 CentOS 8 已于 2021-12-31 停止官方维护,默认的 AppStream/ BaseOS仓库地址(mirror.centos.org)已经下线,dnf拉不到元数据就会报这个错。
安装MySQL仓库
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm -y若输出Complete!即安装成功
确认仓库已启用
dnf repolist enabled | grep mysql为以下结果即正常

如果没有mysql80-community这一项,需要手动开启
sudo dnf config-manager --enable mysql80-community避免模块残留,先 reset 再 disable
sudo dnf module reset mysql
sudo dnf module disable mysql -y安装MySQL8.0
先看看当前 mysql 模块状态
sudo dnf module list mysql
若看到以上mysql后面有 [d]或 enabled标记,我们需要禁用掉CentOS8自带的mysql模块
sudo dnf module disable mysql -y看到Complete!即成功
清理缓存并重建
sudo dnf clean all
sudo dnf makecache接下来安装mysql8.0
sudo dnf install mysql-community-server -y有类似如下结果就是正常

可以检查版本看看有没有安装成功
mysqld --version有以下结果就可以
/usr/sbin/mysqld Ver 8.0.46 for Linux on x86_64 (MySQL Community Server - GPL)启动 MySQL 并设置开机自启
启动MySQL,这条指令会卡一会,cpu占用也会突然很高
sudo systemctl start mysqld设置开机自启
sudo systemctl enable mysqld查看状态
sudo systemctl status mysqld看到 active (running)即正常

获取 MySQL 初始 root 密码
MySQL 8 安装后会自动生成临时 root 密码(MySQL 8 特性)
运行如下指令查看密码
sudo grep 'temporary password' /var/log/mysqld.log这个密码要先复制下来

MySQL 安全初始化
sudo mysql_secure_installation上面指令输入后会让你输入刚才获取的初始密码
直接粘贴或者输入,有的终端粘贴不了,手动输入就很难受了

输入完之后会让你输入你的新密码,和确认新密码
把你自己的密码输入两遍就行,注意:密码要有大写字母、小写字母、数字、特殊符号

密码输入完成后,会有几个选项让我们选,全部输入y然后回车就行

主要是这么几个问题
- 移除匿名用户:
Y - 禁止 root 远程登录(先选
Y,后面可再开) - 移除 test 数据库:
Y - 重载权限表:
Y
登录Mysql
输入以下指令登录mysql
mysql -u root -p然后会让你输入刚才设置的密码,输入后如果是这样的就代表成功
mysql>代表这不是终端命令行了,这后面需要输入sql语句

然后执行一条sql语句
SELECT VERSION();
SHOW DATABASES;如果是这样的,就代表查询成功,sql语句没问题

接下来退出就行,执行
EXIT;退出成功会给你说拜拜

开启远程连接
开启远程连接之后,我们就可以使用navicat或者winscp这种工具连接数据库了
执行以下指令开启sql语句书写模式
mysql -u root -p然后输入如下sql语句
注意要把羡慕两个强密码处修改为刚才设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';
CREATE USER 'root'@'%' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;sql说明
修改本地 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';创建远程 root 用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的强密码';授予全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;刷新权限缓存
FLUSH PRIVILEGES;退出
EXIT;如果看到都是Query OK就行

然后修改配置文件
sudo vi /etc/my.cnf按i进入编辑模式,然后确认或者添加如下内容
bind-address=0.0.0.0
然后退出编辑:按ESC,输入:wq然后回车
接下来重启mysql
sudo systemctl restart mysqld防火墙放行3306
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload看到输出success即为成功
远程连接
虚拟机终端输入
ip addr查找ens*开头的一项,我的是ens-160

看到IP地址一项,假如我的地址是是192.168.150.100,复制这个ip地址
DBX
打开数据库连接软件,我是用的是DBX,一个免费开源媲美navicat的软件
点击新建连接

选择MySQL,点击下一步

主机填入刚才的ip地址,端口默认是3306,密码是上面我们给mysql设置的强密码
点击测试,显式连接成功就没问题,就可以直接连接了
然后新建个数据库,建表,添加几个测试数据

Navicat
如果是Navicat,点击左上角连接

选择MySQL,下一步

输入我们的主机名,和强密码,点击测试连接

显式连接成功就可以确定,然后正式连接了
可以看到这里有刚才在DBX中创建的users表

