1. 程式人生 > >MySQL 5.7 安裝完成後,首次登陸的幾個問題

MySQL 5.7 安裝完成後,首次登陸的幾個問題

centos grep lock pri using net 什麽 roo nbsp

Server:CentOS 7.0

MySQL : 5.7.20 MySQL Community Server (GPL)

1.首次登陸後修改密碼:

根據安裝時的選擇不同,有mysqld_safe用mysqld_safe,沒有就用mysqld。正常安裝都應該在/usr/sbin目錄下

a)啟動mysql

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

b)無密碼進入msyql

mysql -u root mysql

c) 修改密碼

UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;

會發現這個錯誤:ERROR 1054 (42S22): Unknown column ‘Password‘ in ‘field list‘

最新版的mysql中,該命令應該改為:

UPDATE user SET authentication_string=PASSWORD(‘newpassword‘) where USER=‘root‘;

d) 刷新退出

flush privileges;

exit;

2.每次登陸提示需要修改密碼:

退出後通過密碼登錄發現無論做什麽操作都會提示

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

於是,只能再次設置

UPDATE user SET PASSWORD=PASSWORD(‘newpassword‘)

但是退出後,再次進入,仍然會有這個提示。非常坑........

解決辦法:

UPDATE user SET authentication_string=PASSWORD(‘newpassword‘) where USER=‘root‘ and host=‘root‘ or host=‘localhost‘;

貌似是把所有的空密碼都設置為有效的密碼才行,mysql 5.6還沒有這種限制。5.7上現在有了

flush privileges; exit之後再登錄就不會提示修改密碼了。

3. 無法啟動報錯

查看mysqld.log,發現如下錯誤記錄

====================================

InnoDB: Unable to lock ./ibdata1, error: 11

InnoDB: Check that you do not already have another mysqld process

===================================

root cause:啟動文件,被另一個進程占用。其實大多數情況是mysqld重啟的時候,之前的資源沒有完全釋放。

solution:

1)ps aux |grep mysq* #找到鎖住資源的進程

2)kill -s 9 進程號 # 殺死進程

3)重啟mysqld即可

MySQL 5.7 安裝完成後,首次登陸的幾個問題