Mysql 5.7初始化以及忘记root密码解决方法

主要文件位置

    ##没加粗的路劲都是自己指定的,mysql5.7编译安装可看上一篇文章

      /usr/local/mysql57/bin/mysql               主服务程序

     /etc/my.cnf                                           主配置文件

     /usr/local/mysql57/bin/mysqld             初始化数据库

     /usr/local/mysql57/support-files/mysql.server      启动脚本

     /mysql/mysql.sock                  sock文件 的位置

     /mysql/mysql.pid                      pid文件的位置。

给服务相关目录授权

          chown -R mysql:mysql /usr/local/mysql57 # 重新修改权限

          chown -R mysql:mysql /mysql     # 数据库数据目录授权

          chown -R mysql:mysql /my.cnf     #配置文件授权

修改配置文件/etc/my.cnf

         

 [client]
          port=3306
          socket=/mysql/mysql.sock

 [mysqld]
        character-set-server=utf8
        collation-server=utf8_general_ci

        skip-name-resolve                  ##跳过主机名解析,
        user=mysql
        port=3306
        basedir=/usr/local/mysql57          #mysql主程序的目录
        datadir=/mysql                      #mysql数据库数据存放
        tmpdir=/tmp                                
        socket=/mysql/mysql.sock            #sock文件路径
        log-error=/mysql/mysqld.log         #日志文件路径
        pid-file=/mysql/mysqld.pid          #服务pid文件所在位置

初始化数据库

        # 初始化数据库, 确保 /data/mysql 目录是mysql 可写的。
        /usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

          命令参数解释:
                --defaults-file : 指定MySQL配置文件路径 ##这里面有我们刚才配置好的参数
                --initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要立刻修改密码
                --user: 指定运行用户

启动服务

         /usr/local/mysql57/support-files/mysql.server start #启动mysql 服务器

登录数据库

        注意:初始化时随机生成了密码,可以去/mysql下的mysql.log 里查看

     【root】# cat mysql.log | grep password
               2018-09-12T06:28:43.374399Z 1 [Note] A temporary password is generated for root@localhost: dHuSP!;y.3ef
       #临时密码登录数据库  (会提示要你修改密码)

                /usr/local/mysql57/bin/mysql -uroot  -p "dHuSP!;y.3ef"  

      修改密码方法:(建议方法二)

       方法一:

           mysql>update mysql.user set authentication_string=password("新密码");
           mysql>flush privileges;     

       方法二:

            mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';  
            mysql> flush privileges;

忘记MySQL的root密码如何登录

       1、在配置文件my.cnf的mysqld端下加skip-grant-tables跳过密码认证

         [mysqld]
         skip-grant-tables

       2、重启服务或重装配置文件

            /usr/local/mysql57/support-files/mysql.server  restart

           /usr/local/mysql57/support-files/mysql.server reload   

       3、无密码登录       

          /usr/local/mysql57/bin/mysql 

      4、无密码登陆后修改密码

            mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';  
            mysql> flush privileges;

     5、删除配置文件里skip-grant-tables (重点:不删除,密码不会生效

           #skip-grant-tables

    6、重启服务,或加载配置文件就生效了

设置无密码登录

     #修改配置文件my.cnf的client段,添加如下参数

           password=123123   #你设置密码

     在登录时候就不用输入:mysql -uroot -p 输入密码登录数据库了

授权其他主机能登录mysql数据库

     #授权10.10.10.1主机用root用户,密码为123123 登录数据库         

      grant all on *.* to "root"@"10.10.10.1" identified by "123123"

猜你喜欢

转载自blog.csdn.net/qq_38228830/article/details/82734175