#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...