Linux(CentOS)安装MySQL教程

1. 准备工作 

1.1 安装CentOS虚拟机        

 教程[点击跳转]

1.2 将CentOS虚拟机设置为静态IP,否则你每次重启虚拟机后连接数据库都要重新查IP

 教程[点击跳转]

1.3 如果有安装过MySQL,请先卸载MySQL

 教程[点击跳转]

1.4 虚拟机执行命令su切换到root账号(输入密码时不会显示密码,实际已经输入)

su

2.安装MySQL(本文以CentOS 7下安装MySQL 8为例)

2.1 删除mariadb数据库软件包

2.1.1 执行命令rpm -qa|grep mari查询mariadb数据库软件包

        mariadb是CentOS自带的数据库,装MySQL前要先卸载,但不一定每一个CentOS镜像都有自带mariadb数据库,如果查到没有则直接跳过此步

#查询mariadb数据库软件包
rpm -qa|grep mari
我虚拟机上的mariadb数据库软件包如图

2.1.2 执行命令rpm -e --nodeps 包名来删除软件包

#删除软件包
rpm -e --nodeps marisa-0.2.4-4.el7.x86_64  #包名用你自己查询到的
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64  #包名用你自己查询到的

2.2 安装MySQL

2.2.1 执行命令wget -c 链接下载rpm源(根据CentOS版本自行选择)

#CentOS8 mysql8 rpm源
wget -c https://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpm
#CentOS7 mysql8 rpm源
wget -c https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
#CentOS6 mysql8 rpm源
wget -c https://dev.mysql.com/get/mysql80-community-release-el6-7.noarch.rpm

#如果wget命令无效,先执行下面这个命令安装wget
yum -y install wget

2.2.2 执行命令rpm -ivh 包名安装rpm源(根据下载的rpm源自行选择)

#CentOS8 安装mysql8
rpm -ivh mysql80-community-release-el8-5.noarch.rpm
#CentOS7 安装mysql8
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
#CentOS6 安装mysql8
rpm -ivh mysql80-community-release-el6-7.noarch.rpm

2.2.3 执行命令yum -y install mysql-server安装mysql服务

#安装mysql服务
yum -y install mysql-server

2.3 启动MySQL

2.3.1 执行命令systemctl start mysqld启动MySQL

#查看mysql运行状态
systemctl status mysqld
#启动mysql
systemctl start mysqld
#停止mysql 
systemctl stop mysqld
#重启mysql 
systemctl restart mysqld  

2.3.2 执行命令systemctl enable mysqld开启MySQL开机自启动

#开启mysql开机自启动
systemctl enable mysqld
#关闭mysql开机自启动
systemctl disable mysqld

2.4 设置MySQL密码

2.4.1 执行下方命令获取临时密码

//获取MySQL临时密码
grep 'temporary password' /var/log/mysqld.log
我的MySQL临时密码如图,直接复制避免输错

2.4.2 执行命令mysql -uroot -p登录MySQL(密码是上面获取的临时密码)

//登录mysql
mysql -uroot -p

2.4.3 用临时密码登录后执行下方命令设置MySQL永久密码

//根据下图中的密码策略设置mysql数据库密码(你不设置密码就无法进行其它操作)                      
alter user 'root'@'localhost' identified by 'password@0';

        你的密码不符合默认密码策略的话是无法设置成功的,mysql8默认密码策略如下图(最小8位,至少含义一个数字,至少含义一个特殊字符

2.4.4 执行下方命令修改密码策略

        只能临时修改密码策略,重启MySQL后自动恢复默认密码策略,想要永久修改需要改MySQL配置文件,一般来说临时修改密码策略就够了,又不天天改密码

//设置密码长度
set global validate_password.length = 6;
//设置密码风险等级(等级越高要求密码越复杂),分为0、1、2级
set global validate_password.policy = 0;

//查询密码策略
show variables like 'validate_password.%';

2.4.5 修改完密码策略后执行下方命令重新设置你的MySQL密码

//设置mysql数据库密码                       (这里是密码)
alter user 'root'@'localhost' identified by '123456';

2.5 允许外部访问该MySQL数据库

2.5.1 依次执行下方命令即可允许外部访问该MySQL数据库

//创建用户
       (远程连接用的账号)           (远程连接用的密码)
create user 'root'@'%' identified by 'mypassword';

//分配权限,运行远程连接
                         (允许root账号远程连接)
grant all privileges on *.* to 'root'@'%' with grant option;

//刷新权限
flush privileges;

2.5.2 尝试用Navicat连接虚拟机上的MySQL数据库,但是连接失败,这是CentOS的防火墙导致的,所以无法连接

2.6 防火墙(CentOS7)

        CentOS7和CentIOS6防火墙命令不一样,CentOS6防火墙命令请自行查找

2.6.1 执行下方命令直接关闭防火墙(不推荐,不安全)

#关闭防火墙
systemctl stop firewalld.service

2.6.2 执行下方命令开启指定端口允许外部访问

#永久允许该端口被外部访问(3306是MySQL默认端口号)
firewall-cmd --permanent --add-port=3306/tcp
#重启防火墙
firewall-cmd --reload

修改MySQL端口号教程[点击跳转] 

2.6.3 防火墙命令概览

#关闭防火墙
systemctl stop firewalld.service
#禁止防火墙开机自启动
systemctl disable firewalld.service
#永久允许该端口被外部访问
firewall-cmd --permanent --add-port=3306/tcp
#临时允许该端口被外部访问
firewall-cmd --add-port=3306/tcp
#禁止该端口被外部访问
firewall-cmd --remove-port=3306/tcp
#重启防火墙
firewall-cmd --reload

2.7 重新远程连接MySQl数据库

 Navicat下载[点击跳转]

连接成功

猜你喜欢

转载自blog.csdn.net/Coin_Collecter/article/details/130095380