在CentOS中默认安装有MariaDB,这个是MySQL的分支,一般来讲安装mysql会直接覆盖MariaDB,为了保险起见先卸载MariaDB
1.首先 运行以下命令查看mariadb是否存在
rpm -qa | grep -i mariadb
2.如果存在的话,则使用以下命令卸载,不存在的话可略过
rpm -e --nodeps mariadb名称(例如:mariadb-libs-5.5.68-1.el7.x86_64)
3.为了防止有之前安装的mysql没有卸载干净,这里使用命令再次检查一下
rpm -qa | grep mysql
4.如果有的话则和以上步骤相同
rpm -e --nodeps mysql版本名称(例如mysql57-community-release-el7-10.noarch)
5.和以上同理,检查下yum是否存在,如果不存在的话,则需要安装
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
6.安装完yum之后使用wget下载mysql仓库 并使用 yum安装 命令如下
#下载mysql仓库
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
# 安装mysql
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
以上代码是根据安装过程中 可能出现的错误进行预处理过的,可放心食用
7.启动mysql
方法1
systemctl start mysqld.service
方法2
service mysqld start
这里说一下,刚安装完Mysql第一次使用的时候,要使用以下命令查看root密码,随后进行修改密码
cat /var/log/mysqld.log | grep password
# 密码一般会在输出的最后
8.使用root账户登录
mysql -u root -p # 使用此命令之后回车,输入上一步获取到的root密码回车即可
9.修改初始密码
未进行密码机制修改前,只能使用机制比较复杂的密码,比如大小写及. 三种组合的密码长度最少8位数
如果想要修改密码机制的话可以运行以下命令
注:如果要修改密码限制等级或者密码长度限制的话,首次安装mysql 需要修改初始密码之后再进行操作
# 修改密码限制等级为最低
set global validate_password_policy=0;
# 修改密码长度最少为1
set global validate_password_length=1;
在此说明下,不建议修改为这么低等级的密码 ,很多挖矿的会使用弱口令破解攻击你的服务器
因为 俺就被攻击过
# 在myql中 使用以下命令修改密码
alter user 'root'@'localhost' identified by '新密码';
#最后使用以下命令刷新配置即可(如果有修改密码限制等级或者密码长度的话,也需要运行此命令)
flush privileges;
# 刷新完配置 在mysql下输入exit退出即可
10.接着如果想要你的mysql可以在公网可以访问的话,首先需要打开 端口,打开端口,打开端口!(重要的事情说三遍)
这里吐槽一下,俺之前用的阿里云的服务器,然后直接在安全组中添加想要开启的端口和规则,就直接可以用了,但是现在新整了个某讯云之后 在安全组防火墙中添加规则之后,重启服务器还是没有生效,最后使用命令才搞定(不知道是不是因为这服务器是轻量级的比较便宜的原因哈)
# 设置所有ip可以使用root账户登录mysql
依次输入以下命令
use mysql;
update user set host = ‘%' where user =’root’;
flush privileges;
exit
#开启3306端口
iptables -I INPUT 1 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
#保存iptables规则
service iptables save
如果使用service iptables save命令报错 如下
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
解决方案可以看看下面这篇文章:
https://www.darlang.com/2017/04/linux-the-service-command-supports-only-basic-lsb-actions/
接着就是最后一步了
首先使用whereis my.cnf 查看配置文件在哪里(默认会在/etc/文件夹下)
然后cd到文件夹下,使用vim来编辑文件
例如 查看到文件在 /etc/my.cnf 先cd /etc 然后再vim my.cnf 不要直接使用vim /etc/my.cnf
添加下面红框中的两行代码然后保存退出即可
port = 3306
bind-address = 0.0.0.0
(如果有bind-address=localhost的话,要注释掉)
最后重启下mysql服务即可,命令如下: service mysqld restart