mysql初次登入不能登入問題

2021-08-07 21:25:15 字數 3230 閱讀 4065

#1.停止mysql資料庫

/etc/init.d/mysqld stop

#2.執行如下命令

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

#3.使用root登入mysql資料庫

mysql -u root mysql

#4.更新root密碼

mysql> update user set password=password('newpassword') where user='root';

#最新版mysql請採用如下sql:

mysql> update user set authentication_string=password('newpassword') where user='root';

#5.重新整理許可權

mysql> flush privileges;

#6.退出mysql

mysql> quit

#7.重啟mysql

/etc/init.d/mysqld restart

#8.使用root使用者重新登入mysql

mysql -uroot -p

enter password: 《輸入新設的密碼newpassword>

###允許遠端使用者登入訪問mysql的方法

需要手動增加可以遠端訪問資料庫的使用者。

方法一、本地登入mysql,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,將"localhost"改為"%"

#mysql -u root -proot

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

方法二、直接授權(推薦)

從任何主機上使用root使用者,密碼:youpassword(你的root密碼)連線到mysql伺服器:

mysql登入時出現 access denied for user 'root'@'***.***.***.***' (using password: yes) 的原因及解決辦法。

# mysql -u root -h 192.168.194.142 -p

enter password:

error 1045 (28000): access denied for user 'root'@'192.168.194.142' (using password: yes)

【解決辦法】

1. 先用localhost登入

# mysql -u root -p

enter password:

2. 執行授權命令

mysql> grant all privileges on *.* to root@'%' identified by '123';

query ok, 0 rows affected (0.07 sec)

3. 退出再試

mysql> quit

bye再試登入:

# mysql -u root -h 192.168.194.142 -p

enter password:

welcome to the mysql monitor. commands end with ; or \g.

your mysql connection id is 3

server version: 5.6.33 mysql community server (gpl)

oracle is a registered trademark of oracle corporation and/or its

affiliates. other names may be trademarks of their respective

owners.

type 'help;' or '\h' for help. type '\c' to clear the current input statement.

mysql>

成功啦!

下面詳細說說如何給使用者授權。

mysql> grant 許可權1,許可權2, ... 許可權n on 資料庫名稱.表名稱 to 使用者名稱@使用者位址 identified by '連線口令';

許可權1,許可權2,... 許可權n 代表 select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file 等14個許可權。

當許可權1,許可權2,... 許可權n 被 all privileges 或者 all 代替時,表示賦予使用者全部許可權。

當 資料庫名稱.表名稱 被 *.* 代替時,表示賦予使用者操作伺服器上所有資料庫所有表的許可權。

使用者位址可以是localhost,也可以是ip位址、機器名和網域名稱。也可以用 '%' 表示從任何位址連線。

'連線口令' 不能為空,否則建立失敗。

舉幾個例子:

mysql> grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by 『123′;

給來自10.163.225.87的使用者joe分配可對資料庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的許可權,並設定口令為123。

mysql> grant all privileges on vtdc.* to [email protected] identified by 『123′;

給來自10.163.225.87的使用者joe分配可對資料庫vtdc所有表進行所有操作的許可權,並設定口令為123。

mysql> grant all privileges on *.* to [email protected] identified by 『123′;

給來自10.163.225.87的使用者joe分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

mysql> grant all privileges on *.* to joe@localhost identified by 『123′;

給本機使用者joe分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

flush privileges

解決mysql不能遠端登入的問題

1。改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 mysql 資料庫裡的 user 表裡的 host 項,從 localhost 改稱 mysql u root pvmwaremysql use mysql my...

MySQL登入問題

通過解壓檔案方式安裝mysql,登入時使用mysql uroot p 提示error 1045 28000 access denied for user localhost using password no 解決方案 通過service.msc關閉正在執行的mysql服務。開啟dos視窗,轉到my...

mysql 登入問題

windows環境登入安裝的mysql出現 access denied for users root localhost using password yes 進入mysql安裝目錄下的my.ini檔案中,在mysqld中加入 skip grant tables意思是跳過許可權直接登入然後重啟mys...