本人初次在Linux系统中安装MySQL踩过不少坑,特写出此文档避免新手踩坑。
在CentOS7中默认有安装MariaDB,是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。但为了需要,还是要在系统中安装MySQL,而且安装完成后可以直接覆盖掉MariaDB。所以不用在安装前卸载MariaDB。
安装前,请使用root用户登录,并切换目录到
/usr/local
,命令cd /usr/local
。
步骤1:下载MySQL官方的 Yum Repository,Mysql版本5.7
YUM( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,无须繁琐地一次次下载、安装。
使用下面的命令就可以直接下载了安装用的Yum Repository。
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
注意:
第一次安装可能出现以下提示,原因:初次使用CentOS7,没有安装wget。
安装wget命令:yum install -y wget
步骤2:安装第一步下载的rpm文件
yum -y install mysql57-community-release-el7-10.noarch.rpm
步骤3下载量很大,默认yum地址会下载很慢,建议更改为阿里云的yum源,下载速度会大大提高。
使用阿里yum源,解决yum下载过慢的问题
步骤3:安装MySQL服务器
yum -y install mysql-community-server
这步会花些时间,安装完成后就会覆盖掉之前的mariadb,具体多久根据个人网速决定。
步骤4:MySQL数据库设置
1、启动MySql
systemctl start mysqld.service
2、查看MySql运行状态,如图
systemctl status mysqld.service
3、找出root用户的密码
此时MySql已经开始正常运行,不过要想进入MySql还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
4、使用初始密码登录数据库
使用如下命令登录数据库:
mysql -uroot -p
敲回车输入密码,输入密码时是不会显示的。登录成功后如图:
5、修改root用户初始密码
此时不能做任何事情,因为MySql默认必须修改密码之后才能操作数据库,如下命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
new password
替换成你输入的新密码。
注意:密码设置必须要大小写字母数字和特殊符号(,/’;:等),不然不能配置成功。
如图所示,密码不符合默认规定会配置失败:
配置失败的原因是不符合默认规定,如下命令查看MySql默认密码复杂度:
SHOW VARIABLES LIKE 'validate_password%';
使用此命令,密码规定就只验证密码长度:
set global validate_password_policy=LOW;
更改密码验证长度为6位数:
set global validate_password_length=6;
6、开启MySql的远程访问
执行以下命令开启远程访问限制(注意:ip
是指定可访问MySql的ip地址,如要开启无限制访问的ip可用%
代替,password
是你设置你的mysql远程登录密码)
grant all privileges on *.* to 'root'@'ip' identified by 'password' with grant option;
然后再输入以下命令(刷新权限,如不执行,更改可能无效):
flush privileges;
执行命令如图:
步骤5:CentOS防火墙添加开放端口3306
MySql开启远程访问后,并不能真正的实现远程访问,原因是Linux系统中默认有防火墙firewall管理所有的端口,只启用默认远程连接22端口其他都关闭。这一步操作是针对某一个端口,设置其越过防火墙的限制(Tomcat,MySQL同理)。
首先退出MySql,命令\q
1、执行如下命令检验防火墙是否启动,出现running
表示正在启动,如果没有出现执行systemctl start firewalld
启动防火墙
firewall-cmd --state
2、执行命令,开启3306端口,出现success
表示成功
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、重新启动防火墙,出现success
表示成功
firewall-cmd --reload
4、检查3306端口是否被防火墙开启,出现3306/tcp
说明端口被开启
firewall-cmd --permanent --zone=public --list-ports
执行命令如图:
步骤6:更改MySql字符集为UTF-8
到/etc
目录下的my.cnf
文件下修改文件内容。
执行如下命令打开文本编辑器:
vi my.cnf
按下键盘i
键,进入编辑模式,新增如下代码:
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
新增代码位置如图所示:
按下键盘Esc
键退出编辑模式,输入命令:wq
保存并退出
执行如下命令重启MySql:
service mysqld restart
重新登录MySql输入命令status
查看状态,发现都为utf8
,说明修改成功。
到此CentOS7安装MySQL5.7全部操作完毕。