centos6.8安装mysql5.7及用navicat远程连接
一、忘记mysql的root密码,重置失败,重新安装mysql
以前安装了mysql,不经意把root密码忘了,就按照网上操作即更改my.cnf配置文件
0、MySQL 版本查看
mysql --version
1、用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf
2.在[mysqld]下添加skip-grant-tables,然后保存并退出
3.重启mysql服务:service mysqld restart
但是重启不起来,始终找不出原因,就想删了重装吧。刚好再练习一下。但又出了很多问题。记录如下:
二、删除原先已经安装的mysql
查看是否已安装mysql
rpm -qa |grep mysql
有的话删除对应组件
然后用yum remove 文件名。如:
依次删除以上三个文件。
三、重新安装mysql
首先要查询一下自己的centos是多少位的系统,然后再安装。我就是一开始没看,安装了64位的系统,尝试了yum安装和rpm安装的方式,都不成功。
尤其是rpm安装是,总提示缺少依赖。见下图。
后来看到一个帖子发现可能是安装的mysql版本不对。(见https://blog.csdn.net/sunbrightness/article/details/80642925)
于是查询了自己的centos系统版本,方法是:
于是,按照以上方法操作:
可以看出,是32位的系统。初步判断问题应该在安装方法上。
至此,原mysql已经删除干净,可以重新安装了。
(一)rpm方式安装。
1、首先找到rpm包
进入官网:https://dev.mysql.com/downloads/mysql/
进入后,选择
2、下载后就可以上传安装了,通过filezilla上传到centos的 /var/tmp 文件夹下
3、进入var/tmp,输入md5sum 文件名,进行md5校验
将其结果与下载页面上的md5值对比,如果一样,证明文件没问题。可以放心解压安装。
(此为示意图)
4、解压文件
#tar -xvf mysql-5.7.23-1.el6.i686.rpm-bundle.tar
5、依次将以上文件拷贝到/usr/local/mysql文件夹。
6、进入mysql文件夹
7、依次安装包含common libs client server deve的包
一开始只安装了前四个,最后一个没安装,导致启动不起来,把develop这个包装上后,就启动正常了
8、获取mysql的root随机密码
因为root用户默认是空密码,所以输入mysql -u root -p 后
提示不能进入,主要因为为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。只有启动过一次mysql才可以查看临时密码。
grep 'temporary password' /var/log/mysqld.log(如果之前安装过MySQL则这里可能会有多个密码,用最后一个,注意这个密码输入时是可以粘贴的)
9、修改mysql的root密码
使用默认的密码登陆
mysql -uroot -p(这是一个MySQL的以密码登录root用户的命令)
修改密码(注意,登录后的操作后面都最好要有;结尾)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你新设的密码';
至此root密码修改完成。
10、开启mysql的远程访问权限
在Linux中装上mysql之后,发现windows中用navicat连接数据库失败,这是由于默认mysql的用户是没有远程访问的权限的,因此当navicat程序跟mysql数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限才能正常访问mysql数据库。同时要在防火墙开始3306端口。
采用改表法设置mysql远程访问权限;
//登录数据库
mysql -u root -p
>use mysql;
//%为所有ip都可以远程访问
mysql>update user set host = '%' where user = 'root';
//或直接添加一条语句也行
mysql>insert into user (host,user,password) values('192.168.0.51','root',password('123'));
//查看一下修改
mysql>select host, user from user;
//推送设置到内存或重启服务器也行(很关键,一开始没输入这一行,导致始终连接不上)
mysql>FLUSH PRIVILEGES;
11、开启centos防火墙3306端口方法
1)打开防火墙配置文件
vi /etc/sysconfig/iptables
2)增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3)更改后的防火墙配置文件
# Firewall configuration written by system-config-firewall
-
# Manual customization of this file is not recommended.
-
*filter
-
:INPUT ACCEPT [0:0]
-
:FORWARD ACCEPT [0:0]
-
:OUTPUT ACCEPT [0:0]
-
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
-A INPUT -p icmp -j ACCEPT
-
-A INPUT -i lo -j ACCEPT
-
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-
COMMIT
4)保存后重启防火墙
service iptables restart
至此全部大功告成!