linux下安装最新版本mysql5.7 问题(yum安装方法)

来源:互联网 发布:百度 mac 五笔 词库 编辑:程序博客网 时间:2024/05/22 04:51

系统:CentOS 6.5   64位


    之前在mysql 官网上下载了源文件进行安装过,后来出现了




之前在centos6.5 安装mysql的时候安装了5.1 的版本,因为在其他地方用到的是5.7 所以那个时候进行了版本的升级,实际上就是把之前的卸载掉,然之后重新安装。

        废话不多说了,直接进入主题吧、

       第一步是确认自己的yum  mysql源是什么版本的

          使用命令:rpm -qa|grep mysql

       

       如果出现的是5.7 那么恭喜你,你的数据源是最新的。


       2.  更新yum源到最新

           [root@localhost ~]# yum update

       

       3. 安装mysql yum repo

           [root@localhost ~]# rpm -Uvh mysql57-community-release-el6-7.noarch.rpm



       4 .  安装mysql服务

    [root@localhost ~]# yum install mysql-community-server

         一直按yes就可以了。



       5  完成后启动服务

                   [root@localhost ~]# service mysqld start

            

      6  启动后,查看安装后自动生成的密码(5.7以后的版本会自动生成一个随机密码)

      查看的命令是

       

      

    

       截图中红色圈圈的位置就是随机密码。

              你可以用这个密码登录进去,然之后修改密码。

       如果你登录进去了就可以不用看下面的了,我试过每次用这个密码登录到提示我错误。

        

      所以只能用第二种修改mysql    root密码的方法了


      之前在5.6之前的版本使用了:

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';
      这种方法修改了密码之后也可以,不过会报错,具体的我也不清楚,这篇博客是我后来才写上去的。所以忘记了什么错误了。



还有一种办法,不用管初始密码是什么,在 root 用户下,修改 my.cnf 文件,跳过密码直接登录。待登入 mysql ,再用 mysql 命令行修改密码。这种方法也适用于忘记 mysql 密码,需要修改密码的情况
$ vi /etc/my.cnf
  [mysqld]配置区域添加:让MySQL免密登陆
  skip-grant-tables
$ service mysqld restart

此时可直接登录,然后修改密码。
$ /usr/local/mysql/bin/mysql -uroot
mysql> updateuserset authentication_string=password('mypassword')whereuser='root';
mysql> quit;
登出 mysql,修改 my.cnf,去掉添加的 skip-grant-tables ,重启 mysqld 服务,使用新密码登录。

 

下面是关于我遇到的一些错误:

   

登录mysql之后无论怎么操作都是报:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
分析原因:
这个问题是否奇怪,因为明明是刚刚用密码登录了mysql服务器。怎么要重置密码呢?因为密码太简单了,不符合MySQL的安全要求。

解决方法:
(1) 设置复杂一点的密码
mysql> SET PASSWORD = PASSWORD('123@mysql');

(2)如果只想设置简单密码需要修改两个全局参数:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

    

使用Nacivat远程登录不了mysql: 用户IP限制问题
update mysql.user set Host="%" where user='root' and Host ='localhost';
%:表示所有的ip都可以访问。

如果想让多个ip访问的话可以为一个MySQL用户设置多个ip访问:

   比如说我只想让192.168.0.56   和 192.168.0.156 这两个ip访问。

GRANT ALL ON *.* to root@'192.168.0.56' IDENTIFIED BY 'your-root-password'; 
GRANT ALL ON *.* to root@'192.168.0.156' IDENTIFIED BY 'your-root-password'; 

还有一个如果ip是设置了公网的ip的话,那么内网的ip都可以访问。