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