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
/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"