zoukankan      html  css  js  c++  java
  • centos6.8安装mysql5.7及用navicat远程连接

    一、忘记mysql的root密码,重置失败,重新安装mysql

    以前安装了mysql,不经意把root密码忘了,就按照网上操作即更改my.cnf配置文件

    0、MySQL 版本查看

    mysql --version

    Linux下MySQL忘记root密码的完美解决方法

    1、用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf

    2.在[mysqld]下添加skip-grant-tables,然后保存并退出

    Linux下MySQL忘记root密码的完美解决方法 

    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  

    至此全部大功告成!

  • 相关阅读:
    linux Crontab 使用
    彻底搞懂 call() 和 apply() 方法
    (day10) 28. 实现strStr()
    (day9)357. 计算各个位数不同的数字个数
    (day7) 168. Excel表列名称
    (day6) 319. 灯泡开关
    (day5)350 两个数组的交集 II
    (day4)581.最短无序连续子数组
    day3 字符串的排列
    JS类型转换
  • 原文地址:https://www.cnblogs.com/menghome/p/10486835.html
Copyright © 2011-2022 走看看