Centos7默认安装了MariaDB服务,需要先将其删除。
rpm -qa | grep mariadb
//若修改过my.cnf文件,会打印一些信息,无需在意
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
自行移步MySQL官网进行下载:
MySQL官网
通过 lrzsz 命令将MySQL安装包上传到Linux系统中
将安装包安装,修改解压文件名:
创建用户组以及用户
//在Linux系统中创建MySQL用户组
groupadd mysql
//为MySQL用户组添加MySQL用户
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf :vi /etc/my.cnf ,如果my.cnf不存在会重新创建,如果存在修改即可
my.cnf内容如下,编辑完成后即可保存退出
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
#注意这里是自己配置的路径
basedir=/software/mysql/mysql5.7
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
进入MySQL的bin目录,初始化。
./mysqld --defaults-file=/etc/my.cnf --basedir=/software/mysql/mysql5.7 --datadir=/data/mysql/ --user=mysql --initialize
查看密码,切记这是初始密码,用于进入MySQL服务。
cat /data/mysql/mysql.err
先将mysql.server放置到/etc/init.d/mysql中。
cp /software/mysql/mysql5.7/support-files/mysql.server /etc/init.d/mysql
启动。
service mysql start
ps -ef|grep mysql
此时恭喜你,MySQL服务已经安装好了!
此时MySQL服务已经启动,需要到MySQL安装目录下的bin文件下,登录MySQL,执行以下命令:
./mysql -u root -p
//登录时的秘密是初始化时候的密码,登录成功后执行以下命令,修改密码
SET PASSWORD = PASSWORD('root123');
//这个地方可能会报错,请看另外一篇文张
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
这个时候不要慌,第一时间想到的是防火墙的原因,下面我们先来测试一下:
//查看防火墙状态
systemctl status firewalld
//因为防火墙是运行状态,所以我们先关闭防火墙,然后再测试连接
systemctl stop firewalld
果然不出所料,关闭防火墙后连接又换了一个错,这个错是啥原因嘞,突然想到MySQL只允许本地连接,不允许远程访问,此时我们遇到两个问题:第一是开放3306端口,第二是设置MySQL允许远程连接,我们一步一步来:
我们开始放开端口3306端口:
// --permanent 永久生效,没有此参数重启后失效
//开放指定端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//开放端口段,适用于多个项目部署
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
//重新载入
firewall-cmd --reload
//查看
firewall-cmd --zone=public --query-port=3306/tcp
//如果添加错了,不要慌,我们还可以移除,切记移除后也要重新载入
firewall-cmd --zone=public --remove-port=80/tcp --permanent
端口开放成功,此时我们再来设置MySQL允许远程连接:
进入MySQL的bin目录,然后进入MySQL服务,执行以下命令:
//访问mysql库
use mysql
//使root能再任何host访问
update user set host = '%' where user = 'root';
//刷新
FLUSH PRIVILEGES;
然后我们再去连接MySQL,显示连接成功。
恭喜你,现在MySQL基础内容就算是安装成功了。