首先检查mysql是否安装
yum list installed | grep mysql
如果有的话 就全部卸载
yum -y remove +数据库名称
MySQL 依赖 libaio,所以先要安装 libaio
yum search libaio # 检索相关信息
yum install libaio # 安装依赖包
下载 MySQL Yum Repository
地址为http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
然后
添加 MySQL Yum Repository
添加 MySQL Yum Repository 到你的系统 repository 列表中,执行
yum localinstall mysql-community-release-el7-5.noarch.rpm
如果提示-bash: wget: 未找到命令,请先执行yum install wget安装 wget
验证下是否添加成功
yum repolist enabled | grep "mysql.*-community.*"
选择要启用 MySQL 版本
查看 MySQL 版本,执行
yum repolist all | grep mysql
可以看到 5.5, 5.7 版本是默认禁用的,因为现在最新的稳定版是 5.6
yum repolist enabled | grep mysql
查看当前的启动的 MySQL 版本
通过 Yum 来安装 MySQL
执行
yum install mysql-community-server
Yum 会自动处理 MySQL 与其他组件的依赖关系:
遇到上述提示,输入 y 继续,执行完成会提示“完毕!”。此时MySQL 安装完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四个包。
执行
rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7
执行
whereis mysql
可以看到 MySQL 的安装目录是 /usr/bin/
启动和关闭 MySQL Server
启动 MySQL Server
systemctl start mysqld
查看 MySQL Server 状态
systemctl status mysqld
关闭 MySQL Server
systemctl stop mysqld
测试是否安装成功
mysql
可以进入 mysql 命令行界面
mysql -u root -p
进入mysql命令行
防火墙设置
远程访问 MySQL, 需开放默认端口号 3306.
执行
firewall-cmd--permanent --zone=public --add-port=3306/tcp
firewall-cmd--permanent --zone=public --add-port=3306/udp
这样就开放了相应的端口。
执行
firewall-cmd--reload
MySQL 安全设置
服务器启动后,可以执行
mysql_secure_installation
此时输入 root 原始密码(初始化安装的话为空),接下来,为了安全,MySQL 会提示你重置 root 密码,移除其他用户账号,禁用 root 远程登录,移除 test 数据库,重新加载 privilege 表格等,你只需输入 y 继续执行即可。
至此,整个 MySQL 安装完成。
下面可以看到都只能本机访问mysql,如果要外部可以访问mysql,那么host这里应该是显示%,所以这里我们可以选择重新创建一个用户并授予最高的权限,语句如下:
grant all privileges on *.* to 'root'@'%' identified by 'lXXXXX' with grant option;
//这句话就是给root账户设置密码为XXXXX且host为%,即外部任何主机均可访问。*.*这个本意是数据库名.表名,我们这里没有写任何表名也没有写数据库名,就是意思所有的数据库都可以用这个root账户访问
flush privileges;//让刚刚修改的权限生效
然后接下来就是重启mysql服务,再次进入到mysql,用查询语句查看user表,如下所示:
如果需要使用外部工具链接mysql
则需要关闭防火墙
systemctl stop firewalld
然后查看状态
systemctl status firewalld