1. 程式人生 > >Mysql 5.7初始化以及忘記root密碼解決方法

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 [email protected]: 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"