一:官网下载RPM包
登陆官网地址下载https://dev.mysql.com/downloads/mysql/,并上传至服务器,可以通过xftp或者filezilla上传。
二:安装前的准备工作
一般可以将文件上传至/usr/目录下新建一个mysql目录存放tar包,然后通过tar -xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar,解包后,虽然会有十几个安装包,但是我们一般只需要安装client和server就够了,首先需要进行安装前的检查,
上面的报错是因为libs包无法安装是由于mariadb已经存在,我们需要将其卸载才能将libs包安装成功,
卸载的命令是:
rpm -e --nodeps mariadb-libs,
然后就可以安装libs包了,
通过一般通过rpm安装的mysql需要依次执行下面的命令,因为各个包之间有依赖关系,所以最好顺序执行:
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
在安装server包时报了一个错误:
报错的原因是因为我的虚拟机中安装的linux是最小化的安装,有些命令是没有安装的,所以需要通过
yum provides perl查看可以安装的软件包,
然后通过yum install perl安装,之后再继续安装server包,这时候就成功了。
三:初始化数据库
初始化的命令是:mysqld--initialize --user=mysql
执行之后会给mysqlroot用户一个初始化的密码,可以通过vim /var/log/mysqld.log到日志中看初始密码
启动mysql数据库,之后就可以登录了,
mysql -uroot -p,输入密码,
第一次登录需要修改初始密码
alter user 'root'@'主机地址' identified by '密码';
如果想在虚拟机外通过sqlyog之类的工具连接服务器中的mysql,需要修改防火墙设置,放开3306端口。
如果在/etc/sysconfig/目录下找不到iptables文件,说明防火墙没有安装,通过yum provides iptables可以看到可以安装的版本。
yum install iptables和yum install iptables-service;
然后开启防火墙service iptables start
vim /etc/sysconfig/iptables
将3306端口开发,然后重启防火墙生效即可。
登录数据库报ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
原因主要是使用默认密码登录失败,需要登入数据库修改root用户的密码,但是现在的问题就是进不了数据库。
1、首先需要修改配置文件在[mysqld]下面添加skip-grant-tables,这样就可以免密码登录,重启数据库,输入mysql -uroot -p,然后按Enter键直接进入数据库。
2、进入mysql用户,use mysql。然后修改root用户的密码:
update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';
注意authentication_string=password('newpassword')中的password('')不能少,否则会失败。
3、输入flush privileges;刷新赋权。
然后退出数据库,修改配置文件将skip-grant-tables注释掉,重新启动数据库,这时就可以用新密码登录了。