一. MySQL
1-1MySQL下载
①进入MySQL官网https://www.mysql.com/,进入downloads页面,找到如下入口进入社区版下载页面:
②选择MySQL Community Server标签并进入
③先点击Archives标签进入可选择版本的页面,选择MySQL版本为5.7.33,操作系统为Red Hat Enterprise Linux/Oracle Linux(CentOS):
④复制下载集合包的连接,到Linux上使用wget命令进行下载:
1-2MySQL安装
①使用tar -xvf 命令解压压缩包:
②使用rpm工具装common包
③使用rpm工具安装lib依赖包
如果出现 mariadb-libs is obsoleted by mysql-community-libs-5.7.33-1.el7.x86_64的error,说明本地已经有了mariadb,可尝试删除mariadb的lib。
rpm -qa | grep mariadb
如果有mariadb-libs-***类似的内容,则给它卸载掉:
rpm -e --nodeps mariadb-libs-***
如果卸载掉以后mysql-community-libs-5.7.33-1.el7.x86_64还是安装不上,可尝试用–force强制安装:
rpm -ivh --force --nodeps mysql-community-libs-5.7.33-1.el7.x86_64.rpm
④安装MySQL Client
⑤安装MySQL Server
报错显示需要perl包,使用yum install perl安装所需包。
然后安装成功,如果还是安装失败,可尝试使用–force安装。
⑥查看MySQL安装在哪里的
1-3运行MySQL
如果直接启动MySQL,会生成一个默认的root密码,需要看log才知道默认的root密码。另一种启动方式是:先修改 my.conf 使MySQL在启动时跳过密码校验,待MySQL启动后再进入修改密码。在这里使用第二种方式(但在线上或者生成环境一定不要使用这种方式,因为在跳过密码校验的阶段容易被攻击)。
①修改MySQL的配置文件 /etc/my.cnf,跳过密码校验。
②启动MySQL的服务
注意:mysqld.service才是MySQL Server
systemctl start mysqld.service
③使用MySQL客户端连接MySQL Server
因为无校验,可以直接连上。
④设置root密码
update mysql.user set authentication_string=password('123456') where user='root';
设置后需刷新
flush privileges;
退出客户端,重启mysqld.service
- systemctl stop mysqld.service 命令停止mysqld.service;
- 修改 /etc/my.cnf,使用#注释掉跳过密码校验的设置 skip-grant-tables;
- systemctl start mysqld.service 命令启动mysqld.service。
设置低级别密码验证策略(在创建用户或者修改密码时对密码的强度进行验证),方便开发时使用(在生产环境一定要使用强密码验证):
-- 密码策略验证设为LOW表明只验证密码的长度
set global validate_password_policy=LOW;
-- 密码长度验证设为4表明密码的长度需大于等于4位(4是可设置的最小值了)
set global validate_password_length=4;
-- 再更新一下密码(更新的是登录用户的密码,当前是root)
set password=password('123456');
④使用Windows系统的Navicat连接MySQL Server
直接连接,发现连接不了。
查看CentOS服务器防火墙状态:
systemctl status firewalld
既然防火墙都没开,那说明和防火墙没关系。
开启MySQL的远程登录:
-- 在MySQL的客户端中运行
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
这表明使用root这个用户,123456这个密码可以从远程登录,否则就只能在服务器本地登录。
⑤安装并开启防火墙
使用yum install firewalld firewall-config安装防火墙。
开启防火墙:
打开3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:
systemctl restart firewalld.service
原文地址:http://www.cnblogs.com/certainTao/p/15359305.html