CentOS7安装MySQL5.7.11

1. 解压下载的压缩包,会得到如下一些rpm包,也可以直接下载下面的四个rpm包,因为其他的rpm包不是必须的

mysql-community-common-5.7.11-1.el7.i686.rpm

mysql-community-libs-5.7.11-1.el7.i686.rpm

mysql-community-client-5.7.11-1.el7.i686.rpm

mysql-community-server-5.7.11-1.el7.i686.rpm

2.卸载MariaDB

如果直接点击rpm包安装会得到错误提示。因为CentOS的默认数据库已经不再是MySQL了,而是MariaDB,为什么呢?

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行, 使之能轻松成为MySQL的代替品。

查看当前系统安装的mariadb包

[root@localhost 下载]# rpm -qa | grep mariadb

卸载所有的mariadb包

[root@localhost 下载]# rpm -e mariadb-libs

会报依赖检测失败的错误

执行强制卸载

[root@localhost 桌面]# rpm -e --nodeps mariadb-libs

3. 安装MySQL

[root@localhost 桌面]# rpm -ivh mysql-community-common-5.7.11-1.el7.i686.rpm
[root@localhost 桌面]# rpm -ivh mysql-community-libs-5.7.11-1.el7.i686.rpm
[root@localhost 桌面]# rpm -ivh mysql-community-client-5.7.11-1.el7.i686.rpm
[root@localhost 桌面]# rpm -ivh mysql-community-server-5.7.11-1.el7.i686.rpm

提示:安装时可能会遇到依赖检测失败的情况如下

安装MySQL依赖即可

[root@localhost 桌面]# yum install libaio.so.1

4. 启动MySQL

[root@localhost 桌面]# systemctl start mysqld.service

如果报错(反正我没报错)ERROR!The server quit without updating PID file

是因为:selinux,如果是centos系统,默认会开启selinux。解决方法是关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。

重启MySQL

[root@localhost 桌面]# systemctl restart mysqld.service

查看MySQL状态

[root@localhost 桌面]# systemctl status mysqld.service

5.使用root用户登陆

5.1 MySQL 5.7 在初始安装后(CentOS7 操作系统)会生成随机初始密码,并在 /var/log/mysqld.log 中有记录,可以通过 more 命令查看,找 password 关键字

然后使用 `mysql -u root -p` 命令登录,并使用 `set password=password('你的密码');` 修改密码。

> 如果不修改密码,不能进行其他操作

> MySQL 的 validate_password 插件是默认安装的。这要求 MySQL 密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符。

5.2 也可以跳过密码检测进入MySQL后再修改root的密码

网上看到用mysqld_safe命令,但是我安装的MySQL5.7.11并没有找到这个命令,到官网查到的下面结果

也就是说mysqld_safe从MySQL5.7.6已经没有安装了,那就不能使用mysqld_safe了。

解决的办法是:通过编辑/etc/my.cnf文件在[mysqld]下面加上skip-grant-tables=1,然后重启MySQL服务。

以root身份登录MySQL

[root@localhost 桌面]# mysql -u root

进入mysql数据库

mysql> use mysql;

修改root的密码为root

mysql> update user set authentication_string = password('root'),password_expired='N',password_last_changed=now() where user='root';

退出MySQL,再次编辑/etc/my.cnf文件,把刚才添加的skip-grant-tables=1删掉,然后再重启MySQL服务即可。

6. 开放3306端口

如果想要其他主机连接你的Mysql就需要开放3306端口。

[root@localhost 桌面]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost 桌面]# firewall-cmd --reload
原文地址:https://www.cnblogs.com/nangch/p/5521193.html