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

时间:2021-06-17 18:32:11

系统:CentOS 6.5   64位


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




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

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

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

          使用命令:rpm -qa|grep mysql

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

       如果出现的是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以后的版本会自动生成一个随机密码)

      查看的命令是

       

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

    

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

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

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

        

      所以只能用第二种修改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都可以访问。