在CentOS 7.3.1611下 rpm方式安装MySQL 5.7.18 详细教程,供大家参考。
CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。
1. 安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
- [root@localhost ~]# rpm -qa | grep -i mariadb
- mariadb-libs-5.5.52-1.el7.x86_64
- [root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
注:详细卸载教程可自行百度,很简单。
- mysql - 5.7.18 - 1.el7.x86_64.rpm - bundle.tar
注:我上传到的路径 /usr/local/tools
注:所有解压包,不一定需要全部安装、注意安装顺序
以下是安装顺序 这几个包由依赖关系。执行有先后其中,client依赖于libs,server依赖于common和client.
- rpm - ivh mysql - community - common - 5.7.18 - 1.el7.x86_64.rpm // <br>
- rpm - ivh mysql - community - libs - 5.7.18 - 1.el7.x86_64.rpm //<br>
- rpm - ivh mysql - community - libs - compat - 5.7.18 - 1.el7.x86_64.rpm < br > rpm - ivh mysql - community - client - 5.7.18 - 1.el6.x87_64.rpm //客户端安装包 <br>
- rpm - ivh mysql - community - server - 5.7.18 - 1.el6.x87_64.rpm //服务端安装包<br>
- rpm - ivh mysql - community - devel - 5.7.18 - 1.el7.x87_64.rpm //包含开发用的库头文件安装包<br>
注: i-install安装;v-verbose进度条;h-hash哈希校验;安装过程中可能会出现 perl 环境等问题,按提示百度就行。
- [root@localhost mysql]#mysqld--initialize--user = mysql
如果是以 mysql 身份登录运行,则可以去掉 –user 选项。
注: –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码
这里演示使用的 –initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
使用
命令打开日志文件
- cat /var/log/mysqld.log
注:systemctl是Centos7特有的启动方式
- systemctl start mysqld.service
- mysql - u root - p;
- set password = password('你的密码');
- grant all privileges on * . * to 'root'@'%'identified by '你的密码';
- flush privileges;
如果在初始化时。指定了其他位置的存储,可以使用
- mysqld--initialize--user = mysql--datadir = /data0/data / mysqldb
注:这样的指定会有其他问题:如 SELinux(CentOS 7 自带的安全软件) 操作权限监控告警而操作被阻止等。
具体可以参考网上的一些资料去查询如何配置,这里仅作一些操作说明。
在安装或者配置过程中,如果修改启动连接端口(默认
)、数据存储路径(默认
- 3306
)等会发现启动、重启或其他操作会被 SELinux 阻止。SELinux的告警提示中可以发现这些操作是不应该访问的操作类型,原因在于这些操作没有被配置为被允许运行的。
- /var/lib/mysql
如果需要直接关闭这些告警即不阻止,可以这么做:
- setenforce 0
一般情况下,更多的是配置规则,而不是直接关闭;
如果有可视化界面的话,可以从 CentOS 的菜单中(应用程序 > 杂项 > SELinux 故障排除工具)查看。
在每个告警中有具体的告警问题,其中具体信息中有这么一些提示:
- 应该将这个情况作为 bug 报告。
- 可以生成本地策略模块以允许此访问。
- Allow this access for now by executing:
- # ausearch -c 'xxxxxx' --raw | audit2allow -M my-xxxxxx
- # semodule -i my-xxxxxx.pp
文中提示这里的 bug 可以配置本地策略解除,运行这些操作就可以进行配置。
不同的配置有不同的方法:
- semanage fcontext -a -t mysqld_db_t "/data0/data/mysqldb"
- restorecon -Rv "/data0/data/mysqldb"
以上可能不能解决 SELinux 的权限问题,还有很多需要在运行时才会提示的需要后期加入规则中,详细操作还需百度 SELinux 配置 MySQL。
来源: http://www.linuxidc.com/Linux/2017-11/148523.htm